如何对 df 中的每个元素使用循环(具有 5 种不同的度量),然后替换每个元素/数据点

问题描述 投票:0回答:0

我的循环似乎有效,并且 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 似乎不能正常工作......

r loops replace sapply
© www.soinside.com 2019 - 2024. All rights reserved.