【发布时间】:2020-09-29 15:14:28
【问题描述】:
我有名为 xa_1、xa_2、...、xa_n 的变量,我想以某些方式进行更改。
- 我想创建名为 xa_n_ 的新变量,我将对其执行这些更改
- 然后我想重新编码这些(分类)变量的值,例如反转李克特量表
我尝试了以下方法:
for(i in c(xa_1, xa_2, ..., xa_n) {
df$[i]_ <- df$[i] # I am sure I need to use paste() in some ways but I have been unable to figure it out
}
我试过这个没有成功:
a <- 1:n
for (i in seq_along(a)) {
df$paste(xa_,[i]_,sep="") <- df$paste(xa_,[i], sep="")
}
如您所见,我在基本功能和对 R 中数据操作的理解方面存在问题。简而言之,我想通过组合变量名称的两个特征来操作一组变量,即它们的共同核心 (xa_) 和他们的识别号 (1, .., n)。
将所有单独的部分放在一起,我想最终想出的是一种方法来执行以下操作:
for(i in c(xa_) {
for( j in 1:4) {
df$paste([i],[j]_, sep="") <- df$paste([i],[j],sep=") # Create a copy of existing variables that runs across variables and numbers
df$paste([i],[j]_, sep="") <- ifelse(df$paste([i],[j],sep=") == 1, 4, ifelse(df$paste([i],[j],sep=") == 2, 3, ifelse(df$paste([i],[j],sep=")== 3, 2, ifelse(df$paste([i],[j],sep=") == 4, 1, NA)))) # recode the new variables based on values in old variables
df$paste([i],[j],_, sep="") <- factor(paste([i],[j],_, sep=""), levels=c(1:4), labels=c("Something", "Something else", "Something else again", "Something else at last")) # Rename the values in the new variables and make them categorical
}
希望这有足够的意义,以便您理解我的意思:)
【问题讨论】:
-
您能否提供一个使用
dput输出的list/data.frame 示例?这将使您更容易掌握原始数据的外观。添加具有预期结果(仅几行)的 list/data.frame 也会更容易为您提供帮助。