我有一个DF,我想在第二个位置添加一个名为"B"的新变量.
A C D
1 1 5 2
2 3 3 7
3 6 2 3
4 6 4 8
5 1 1 2
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
我有一个用于聚合的data.frame,它完全由ddplyplyr 完成.现在的目标是编写一个将聚合对象自动绑定到原始数据的函数.问题是,可能有多个聚合变量.
以下是仅包含一个聚合变量的示例:
这里有我的数据框:
M O
1 1 6
2 2 7
3 2 4
4 1 6
Run Code Online (Sandbox Code Playgroud)
然后ddply我得到"O"的聚合:
TEST <- ddply(.data = DF,
.variables = c("M"),
.fun = summarise,
NEW = sum(O))
Run Code Online (Sandbox Code Playgroud)
结果如下:
M NEW
1 1 12
2 2 11
Run Code Online (Sandbox Code Playgroud)
我现在要做的是编写一个函数,使我能够将变量" New" 绑定到原始data.frame.
在循环中,它适用于:
for(i in 1:nrow(TEST)) {
DF$New[DF$M == TEST$M[i]] <- TEST$NEW[i]
}
M O New
1 1 6 12
2 2 7 11
3 2 4 11
4 1 6 12 …Run Code Online (Sandbox Code Playgroud) 我想编写一个与SPSS命令AUTORECODE相同的函数.
AUTORECODE将字符串和数字变量的值重新编码为连续的整数,并将重新编码的值放入称为目标变量的新变量中.
起初我尝试过这种方式:
AUTORECODE <- function(variable = NULL){
A <- sort(unique(variable))
B <- seq(1:length(unique(variable)))
REC <- Recode(var = variable, recodes = "A = B")
return(REC)
}
Run Code Online (Sandbox Code Playgroud)
但这会导致错误.我认为问题是由A和B提交给recodes参数引起的.这就是我尝试的原因
eval(parse(text = paste("REC <- Recode(var = variable, recodes = 'c(",A,") = c(",B,")')")))
Run Code Online (Sandbox Code Playgroud)
在功能内.但这不是正确的解决方案.
想法?