很抱歉,如果我的问题与我的问题类似,我无法找到我要找的东西。
我有一个包含两列的数据集,一列是平均值,另一列是sd值。 我想创建第三列,即" mean(sd)"。我已经能够使用paste()做到没有问题。 现在我想要做的是创建一个函数来对各种数据集/变量进行操作。我有以下内容:
a=round(runif(20,0,50),2)
b=round(runif(20,0,1),2)
data<-cbind(a,b)
merge.meansd<-function(data,x,y,z){
data$z <- paste(data[,x]," (",data[,y],")",sep = "")
}
merge.meansd(data,"a", "b","c")
我得到以下无法解决的问题:
将LHS强制转移到列表
我的问题的任何想法或解决方案?
由于
答案 0 :(得分:1)
如果要在与两个数字向量相同的数据结构中包含字符列,您几乎肯定希望使用数据框而不是矩阵(如上面的@RichScriven注释) 。
merge.meansd <- function(dd,x,y,z) {
dd <- as.data.frame(dd)
dd[[z]] <- paste0(data[,x]," (",data[,y],")")
## or dd[[z]] <- sprintf("%f (%f)",dd[,x],d[,y])
return(dd)
}
ddm <- merge.meansd(data,"a","b","c")
此外:
$
- 使用变量值进行索引,您需要[[ ]]