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

Create variable from non-consecutive variables using APPLY in R

问题

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

数据集是一个包含 40 个变量和 1,000 个观测值的数据框。 (我还不知道如何在 Whosebug 上直观地表示它。)

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

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

我想创建一个总和为 24 和 34 的变量,但不是 24 到 33 的总和。

data$newvar <- apply(data[24,34], MARGIN = 1, FUN = sum)

不幸的是,这不起作用。我收到以下错误:

dim(X) must have a positive length

提前致谢!

OP 的代码

data[24,34]

是select在第24行和第34列而不是第24和34列中的元素。因此,它是一个vector,长度为1。因此,我们得到错误

dim(X) must have a positive length

到select那些列,连接(c)它。

data[,c(24,34)]

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

data[c(24,34)]

然后我们可以使用apply

apply(data[c(24,34)], 1, FUN=sum)

但是,这可以不使用循环来解决。

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