R 粘贴不返回连接的值

R 粘贴不返回连接的值,r,R,我试图让dataframe的列名在另一个调用中使用,但是这个apply调用返回分隔的值,而不是正确连接的值。我做错了什么 df<-data.frame(c(1,2,3),c(4,5,6)) colnames(df)<-c("hi","bye") apply(df,2,function(x){ paste("subscale_scores$",colnames(x),sep="") #this is the command I am eventually trying to

我试图让dataframe的列名在另一个调用中使用,但是这个apply调用返回分隔的值,而不是正确连接的值。我做错了什么

df<-data.frame(c(1,2,3),c(4,5,6))
colnames(df)<-c("hi","bye")
apply(df,2,function(x){
    paste("subscale_scores$",colnames(x),sep="")

#this is the command I am eventually trying to run      
 #lm(paste("subscale_scores",colnames(x))~surveys$npitotal+ipip$extraversion+ipip$agreeableness+ipip$conscientiousness+ipip$emotionalStability+ipip$intelImagination)
})

是否需要应用

这就是你的意思吗

paste0('subscale_scores$', names(df))
# [1] "subscale_scores$hi"  "subscale_scores$bye"
如果您需要用换行符连接它们,比如说,添加
,sep='\n'

paste0
粘贴(…,sep=“”)
的缩写


稍后您的
lm
通话中会有一个提示-如果您想执行
lm(Y~…)
其中
Y
分别是您的每一列,请尝试:

lms <- lapply(colnames(df),
              function (y) {
                  # construct your formula
                  frm <- paste0('subscale_scores$', y, ' ~ surveys$npitotal+ipip$extraversion+ipip$agreeableness+ipip$conscientiousness+ipip$emotionalStability+ipip$intelImagination')
                  lm(frm)
              })
names(lms) <- colnames(df)

lms是否需要应用
apply

这就是你的意思吗

paste0('subscale_scores$', names(df))
# [1] "subscale_scores$hi"  "subscale_scores$bye"
如果您需要用换行符连接它们,比如说,添加
,sep='\n'

paste0
粘贴(…,sep=“”)
的缩写


稍后您的
lm
通话中会有一个提示-如果您想执行
lm(Y~…)
其中
Y
分别是您的每一列,请尝试:

lms <- lapply(colnames(df),
              function (y) {
                  # construct your formula
                  frm <- paste0('subscale_scores$', y, ' ~ surveys$npitotal+ipip$extraversion+ipip$agreeableness+ipip$conscientiousness+ipip$emotionalStability+ipip$intelImagination')
                  lm(frm)
              })
names(lms) <- colnames(df)
lms这个怎么样

unlist(lapply(colnames(df),function(x){
    paste("subscale_scores$",x,sep="")
}))
这个怎么样

unlist(lapply(colnames(df),function(x){
    paste("subscale_scores$",x,sep="")
}))

我想OP可能在寻找粘贴(…,collapse=“+”)
,因为它看起来像是在构建一个公式。我的目标是做lm(y~),其中y是一个列,就像你想的那样。我尝试了您的解决方案,但在eval(expr、envir、enclose)中出现了
错误:尝试应用非函数
知道为什么吗?我需要一个可复制的示例。当(例如)您有一个名为
df
的数据帧,然后您尝试将
df(x)
当作一个函数来编写时,或者如果(比如)在公式中您使用
a(b+c)
而不是
a*(b+c),就会发生这种情况
-它认为您在
b+c
上调用函数
a
,而不是乘法。只是用一个更简单的数据集进行了尝试,效果非常好。我的问题是变量名中有空格。为了解决这个问题,我不得不在var名称周围加上一个引号。我认为OP可能在寻找
粘贴(…,collapse=“+”)
,因为它看起来像是在构建一个公式。我的目标是做lm(y~),其中y是一列,就像你所想的那样。我尝试了您的解决方案,但在eval(expr、envir、enclose)中出现了
错误:尝试应用非函数
知道为什么吗?我需要一个可复制的示例。当(例如)您有一个名为
df
的数据帧,然后您尝试将
df(x)
当作一个函数来编写时,或者如果(比如)在公式中您使用
a(b+c)
而不是
a*(b+c),就会发生这种情况
-它认为您在
b+c
上调用函数
a
,而不是乘法。只是用一个更简单的数据集进行了尝试,效果非常好。我的问题是变量名中有空格。为了解决这个问题,我必须用单引号将var名称括起来