【发布时间】:2019-07-19 08:24:19
【问题描述】:
我有一个包含大约 100 列的数据框。我想将前 29 列中的值合并到一个列表中。因此,应该创建一个新列,其中每一行都包含一个值列表。诀窍是前 29 列中通常有空单元格,因此有时列表将包含 5 个元素,有时包含 7 个元素、20 个元素等。
虚拟数据框示例:
one = c(2.34, 3.345, 5.345)
two = c(2354.2, 5234.23, 43)
three = c(2643, 434.34, 5.345)
df = data.frame(one, two , three)
所需变量:
([2.34, 2354.2, 2643], [3.345, 5234.23, 434.340], [5.345, 43.00, 5.345])
【问题讨论】:
-
可能类似于:
apply(df, 1, toString)和NAs-- 可能是:apply(df, 1, function(x) { toString(Filter(function(f) !is.na(f), x)) } ) -
如果您可以更新您的示例和所需的输出以涵盖 “有时列表将包含 5 个元素,有时包含 7 个元素,20 个元素”的情况,那就太好了 ;不清楚。