在R中使用APPLY从非连续变量创建变量 问题:

在R中使用APPLY从非连续变量创建变量 问题:,r,apply,R,Apply,我试图使用R中的apply()函数来创建一个新变量,该变量对数据集中的几个非连续变量求和 数据集是一个包含40个变量和1000个观测值的数据帧。(我还不知道如何在StackOverflow上直观地表示这一点。) 我可以使用此函数对连续变量求和: data$newvar <- apply(data[24:34], MARGIN = 1, FUN = sum) data$newvarOP的代码 data[24,34] 正在选择第24行和第34列中的元素,而不是第24列和第34列中的元素。因

我试图使用R中的
apply()
函数来创建一个新变量,该变量对数据集中的几个非连续变量求和

数据集是一个包含40个变量和1000个观测值的数据帧。(我还不知道如何在StackOverflow上直观地表示这一点。)

我可以使用此函数对连续变量求和:

data$newvar <- apply(data[24:34], MARGIN = 1, FUN = sum)
data$newvarOP的代码

data[24,34]
正在选择第24行和第34列中的元素,而不是第24列和第34列中的元素。因此,它是一个长度为1的
向量。因此,我们得到了错误

尺寸(X)必须具有正长度

要选择这些列,请连接(
c
)它

如果原始数据集是
data.frame
,则不需要

data[c(24,34)]
然后我们可以使用
apply

apply(data[c(24,34)], 1, FUN=sum)
但是,这可以在不使用循环的情况下解决

rowSums(data[c(24,34)])
OP的代码

data[24,34]
正在选择第24行和第34列中的元素,而不是第24列和第34列中的元素。因此,它是一个长度为1的
向量。因此,我们得到了错误

尺寸(X)必须具有正长度

要选择这些列,请连接(
c
)它

如果原始数据集是
data.frame
,则不需要

data[c(24,34)]
然后我们可以使用
apply

apply(data[c(24,34)], 1, FUN=sum)
但是,这可以在不使用循环的情况下解决

rowSums(data[c(24,34)])

什么是数据?数据帧?什么是数据?数据帧?谢谢你,@akrun。这解决了问题。谢谢你,@akrun。这解决了问题。