[每日一答] [20150916] 如何根据自定义答案,对已经收集好的【用户调查问卷】进行自动评分?
如何根据自定义答案,对已经收集好的【用户调查问卷】进行自动评分?
评分规则如下:
数据如下,大家可以复制到一个文本文件中:
name,answer1,answer2,answer3
被调查者1,A,ABE,AC
被调查者2,ABCD,ABE,B
被调查者3,C,B,CD
被调查者4,AC,C,D
被调查者5,BC,A,CE
然后,我的实现代码如下:
data <- read.csv("data.csv", fileEncoding = "UTF-8", stringsAsFactors = FALSE)
#设置答案
answer <- c("ABCD", "AB", "CD")
result <- matrix(NA, nrow = nrow(data), ncol = length(answer));
for(i in 1:length(answer)) {
#将每个单词打散
#strsplit(answer[1], split="")
#使用unlist,将List结构打散
r <- unlist(strsplit(answer[i], split=""))
a <- strsplit(data[, i+1], split="")
#进行转换
result[, i] <- ifelse(
#这里注意,
#如果第一列不是调查者姓名,那么要写成i,而不是i+1
data[, i+1]==answer[i], 3,
ifelse(
#这里注意lapply的使用方法
lapply(a, function(sa){
all(sa %in% r)
}), 2, 1
)
)
}
#设置行列名
row.names(result) <- data[, 1]
colnames(result) <- colnames(data)[1:length(answer)+1]
#输出结果
print(result)
输出结果如下:
> print(result)
answer1 answer2 answer3
被调查者1 2 1 1
被调查者2 3 1 1
被调查者3 2 2 3
被调查者4 2 1 2
被调查者5 2 2 1
如果大家对这个数据或者问题有什么疑问,欢迎回复进行提问!
更多教程信息,请浏览:数据挖掘小栈
评分规则如下:
![]() |
数据如下,大家可以复制到一个文本文件中:
name,answer1,answer2,answer3
被调查者1,A,ABE,AC
被调查者2,ABCD,ABE,B
被调查者3,C,B,CD
被调查者4,AC,C,D
被调查者5,BC,A,CE
然后,我的实现代码如下:
data <- read.csv("data.csv", fileEncoding = "UTF-8", stringsAsFactors = FALSE)
#设置答案
answer <- c("ABCD", "AB", "CD")
result <- matrix(NA, nrow = nrow(data), ncol = length(answer));
for(i in 1:length(answer)) {
#将每个单词打散
#strsplit(answer[1], split="")
#使用unlist,将List结构打散
r <- unlist(strsplit(answer[i], split=""))
a <- strsplit(data[, i+1], split="")
#进行转换
result[, i] <- ifelse(
#这里注意,
#如果第一列不是调查者姓名,那么要写成i,而不是i+1
data[, i+1]==answer[i], 3,
ifelse(
#这里注意lapply的使用方法
lapply(a, function(sa){
all(sa %in% r)
}), 2, 1
)
)
}
#设置行列名
row.names(result) <- data[, 1]
colnames(result) <- colnames(data)[1:length(answer)+1]
#输出结果
print(result)
输出结果如下:
> print(result)
answer1 answer2 answer3
被调查者1 2 1 1
被调查者2 3 1 1
被调查者3 2 2 3
被调查者4 2 1 2
被调查者5 2 2 1
如果大家对这个数据或者问题有什么疑问,欢迎回复进行提问!
更多教程信息,请浏览:数据挖掘小栈
还没人赞这篇日记