【发布时间】:2015-12-14 14:17:59
【问题描述】:
这个问题是关于在数据框的每一行上选择不同数量的列。我有一个数据框:
df = data.frame(
START=sample(1:2, 10, repace=T), END=sample(2:4, 10, replace=T),
X1=rnorm(10), X2=rnorm(10), X3=rnorm(10), X4=rnorm(10)
)
我希望有一种不使用循环的方法来为我的数据框的所有行选择第 i 行上的列 (START[i]:END[i])+2。
【问题讨论】:
-
你想做什么?即,您将使用选定的列做什么?例如,您想要这些列的值的总和吗?还有什么?
-
这样的?
apply(df, 1, function(x)df[,seq(x[1]+2, x[2]+2)]) -
目标是将列表的第 i 个元素添加到第 i 行的每个选定单元格中。
-
理想情况下,我想得到一个 10 行乘 6 列的矩阵,每个单元格为 T 或 F。