在R中使用APPLY从非连续变量创建变量 问题:
我试图使用R中的在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列中的元素。因
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。这解决了问题。