我的循环似乎有效,并且 sapply 似乎遍历数据帧中的每个元素/点,但它仅替换第 5 行并且仅替换循环的最后一个条件(并非所有条件都满足)。例如,dataframe 有 40 列和 9 行,所有数据点都是问卷回复。我希望循环用替换函数中的指定条件替换所有数据点。
df 中的每个数据点都是问卷响应(例如 df[1,1] 中的数据点 1 是“1(强烈不同意)”& df[1,2] 可能是“4(有点同意)”
我只想把这些文字字符转换成1:5
# Variables
all_var <- c('1 (disagree strongly)','2 (disagree a little)','3 (neutral, no opinion)','4 (agree a little)','5 (agree strongly')
x_num = 0
# LOOP
for (x_var in all_var){
x_num = x_num + 1
print(c(x_var,x_num))
test77 <- sapply(Big5_regular,
function(x) replace(x=x, list = x_var, values = x_num))
print(x_num)
}
打印语句为:
[1] "1 (disagree strongly)" "1"
[1] 1
[1] "2 (disagree a little)" "2"
[1] 2
[1] "3 (neutral, no opinion)" "3"
[1] 3
[1] "4 (agree a little)" "4"
[1] 4
[1] "5 (agree strongly" "5"
[1] 5
所以我知道循环是正确的,但是替换的 sapply 似乎不能正常工作......