在 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)])
问题
我正在尝试使用 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)])