我想分析使用surveymonkey創建的大型調查,該調查在CSV文件中有數百列,輸出格式很難用作兩行標題。使用R解析出Surveymonkey csv文件
- 有沒有人找到一種管理CSV文件中頭文件的簡單方法,以便分析是可管理的?
- 其他人如何分析Surveymonkey的結果?
謝謝!
我想分析使用surveymonkey創建的大型調查,該調查在CSV文件中有數百列,輸出格式很難用作兩行標題。使用R解析出Surveymonkey csv文件
謝謝!
我到底做了什麼是打印出來使用標註爲V1,V2,等等,那麼我剛纔讀的文件中的LibreOffice標題爲
m1 <- read.csv('Sheet1.csv', header=FALSE, skip=1)
,然後就做對抗M1 $ V10分析,M1 $ V23等..
爲了解決多個列的一塌糊塗我用下面的小功能
# function to merge columns into one with a space separator and then
# remove multiple spaces
mcols <- function(df, cols) {
# e.g. mcols(df, c(14:18))
exp <- paste('df[,', cols, ']', sep='', collapse=',')
# this creates something like...
# "df[,14],df[,15],df[,16],df[,17],df[,18]"
# now we just want to do a paste of this expression...
nexp <- paste(" paste(", exp, ", sep=' ')")
# so now nexp looks something like...
# " paste(df[,14],df[,15],df[,16],df[,17],df[,18] , sep='')"
# now we just need to parse this text... and eval() it...
newcol <- eval(parse(text=nexp))
newcol <- gsub(' *', ' ', newcol) # replace duplicate spaces by a single one
newcol <- gsub('^ *', '', newcol) # remove leading spaces
gsub(' *$', '', newcol) # remove trailing spaces
}
# mcols(df, c(14:18))
毫無疑問會有人能打掃一下!
收拾我用李克特狀鱗屑:
# function to tidy c('Strongly Agree', 'Agree', 'Disagree', 'Strongly Disagree')
tidylik4 <- function(x) {
xlevels <- c('Strongly Disagree', 'Disagree', 'Agree', 'Strongly Agree')
y <- ifelse(x == '', NA, x)
ordered(y, levels=xlevels)
}
for (i in 44:52) {
m2[,i] <- tidylik4(m2[,i])
}
隨意,因爲沒有疑問,這將再次拿出來發表評論!
您可以將其導出,從Surveymonkey適合R A方便的形式,請參閱「高級表格格式的下載響應
2013年11月,網頁佈局似乎已經改變。選擇Analyze results > Export All > All Responses Data > Original View > XLS+ (Open in advanced statistical and analytical software)
。然後轉到導出並下載文件。你會得到原始數據作爲第一行=問題標題/每個行= 1響應,如果你有很多回復/問題,可能會在多個文件之間分割。
問題與頭是與「選擇所有適用的」列將有一個空白頂行和列標題將低於該行。這只是這些類型問題的一個問題。
考慮到這一點,我寫了一個循環來遍歷所有列,並從第二行的值,如果列名是空白字符其中有1
一個字符長度,然後更換列名,你可以殺死第二行數據並且有一個整齊的數據框。
for(i in 1:ncol(df)){
newname <- colnames(df)[i]
if(nchar(newname) < 2){
colnames(df)[i] <- df[1,i]
}
df <- df[-1,]
你可以發表一個*小* Surveymonkey輸出的例子來說明問題嗎?我可以想象一個解決方案,它使用'readLines'和'n = 2'來讀取(並按摩)標題,並使用'read'。csv' with'skip = 2,header = FALSE'來獲取數據... –
下一次當您運行調查時,使用LimeSurvey(http://www.limesurvey.org/) - 它是開源的,它有一個出口到R設施,工作相當好(披露:我寫了出口模塊) – Andrie
@Ben,文件中的標題是兩行問題名稱/編號,然後在下面的行寫出子問題。一般來說,在屁股處理的總痛苦。 –