問卷結果可點此連結:問卷結果
library(stringr)
report <- read.csv("C:\\Users\\es901\\Documents\\dsR\\data\\project\\new-Rreport.csv", head = T)
report <- data.frame(lapply(report, as.character), stringsAsFactors = F) # 表格轉成character
report <- report[, -1] # 移除時間戳記
names(report)[1] <- "name" # 使用者名稱
for(i in 1:36) # 選項中只留下"A"或"B"
{
report[, i+1] <- sapply(str_split(report[, i+1], "-"), "[[", 1)
}
CountScore <- function(row) # 計算各人格分數
{
score <- rep(0, times = 9)
# set some index for counting score ------------------
a1 <- c(19); b1 <- c(3, 6, 10, 15, 22, 28, 32)
a2 <- c(1, 6, 12, 20, 23, 29, 33); b2 <- c(17)
a3 <- c(4, 7, 10, 30, 34); b3 <- c(14, 23, 26)
a4 <- c(2, 16, 24, 28); b4 <- c(8, 12, 21, 34)
a5 <- c(13, 25, 31, 36); b5 <- c(1, 4, 16, 19)
a6 <- c(5, 14, 18, 21, 32); b6 <- c(9, 25, 29)
a7 <- c(22); b7 <- c(2, 7, 11, 18, 27, 33, 36)
a8 <- c(8, 11, 15, 26, 35); b8 <- c(5, 20, 31)
a9 <- c(3, 9, 17, 27); b9 <- c(13, 24, 30, 35)
# ----------------------------------------------------
score[1] <- sum(ifelse(row[a1] == "A", 1, 0)) + sum(ifelse(row[b1] == "B", 1, 0))
score[2] <- sum(ifelse(row[a2] == "A", 1, 0)) + sum(ifelse(row[b2] == "B", 1, 0))
score[3] <- sum(ifelse(row[a3] == "A", 1, 0)) + sum(ifelse(row[b3] == "B", 1, 0))
score[4] <- sum(ifelse(row[a4] == "A", 1, 0)) + sum(ifelse(row[b4] == "B", 1, 0))
score[5] <- sum(ifelse(row[a5] == "A", 1, 0)) + sum(ifelse(row[b5] == "B", 1, 0))
score[6] <- sum(ifelse(row[a6] == "A", 1, 0)) + sum(ifelse(row[b6] == "B", 1, 0))
score[7] <- sum(ifelse(row[a7] == "A", 1, 0)) + sum(ifelse(row[b7] == "B", 1, 0))
score[8] <- sum(ifelse(row[a8] == "A", 1, 0)) + sum(ifelse(row[b8] == "B", 1, 0))
score[9] <- sum(ifelse(row[a9] == "A", 1, 0)) + sum(ifelse(row[b9] == "B", 1, 0))
return(score)
}
report[, 38:46] <- NA # 新增計算後的分數欄位
colnm <- c("I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")
colnames(report)[38:46] <- colnm
for(i in 1:nrow(report))
{
report[i, 38:46] <- CountScore(report[i, 2:37])
}
finalreport <- cbind(name = report[, 1], report[, 38:46], stringsAsFactors = F)
#write.csv(finalreport, file = "C:\\Users\\es901\\Documents\\dsR\\data\\FINALreport.csv", row.names = F)
finalreport[46, 1] <- "謝佳?" # 改掉錯誤名字
finalreport[, 11:13] <- NA
colnames(finalreport)[11:13] <- c("result1", "result2", "result3")
for(i in 1:nrow(finalreport))
{
a <- finalreport[i, 2:10]
result <- colnames(a)[apply(a, 1, function(x) which(x >= 6))] # 選出顯著人格
if (length(result) < 1) {
result <- rep(NA, times = 3)
} else if(length(result) < 2) {
result <- c(result, NA, NA)
} else if(length(result) < 3) {
result <- c(result, NA)
} else
result <- result
finalreport[i, 11:13] <- result
}
#load("C:\\Users\\es901\\Documents\\dsR\\data\\project\\idname.RData")
alln <- read.csv("C:\\Users\\es901\\Documents\\dsR\\data\\project\\id-from-yichin.csv", head = T)
alln <- data.frame(lapply(alln, as.character), stringsAsFactors = F) # 表格轉成character
finalreport <- merge(finalreport, alln, by = "name", all = T)
finalshort <- finalreport[, c(1, 11:14)]
save(finalreport, file = "C:\\Users\\es901\\Documents\\dsR\\data\\project\\new-finalreport.RData")
save(finalshort, file = "C:\\Users\\es901\\Documents\\dsR\\data\\project\\new-finalshort.RData")