【发布时间】:2020-08-03 15:21:10
【问题描述】:
我有一个非常复杂的结构,见下图。我为这个问题苦苦挣扎了很长时间,我真的需要帮助。
这是使我的问题更可重现的示例代码
t <- list(
list(answers = list(list(values = "male"),
list(values = "6"),
list(values = "9"),
list(values = "9"),
list(values = "other"))
),
list(answers = list(list(values = "145")
)
)
我需要的是 answers 中的值(来自每个列表)。
我需要它看起来像一个数据框——每个列表都是列(变量),answers 中第一个列表的每个值显然都是值。像这样
> d <- data.frame("1" = "male", "2" = 6,
+ "3" = 9, "4.1" = 9,
+ "4.2" = 8,
+ "5" = "other",
+ "6" = 145)
> d
X1 X2 X3 X4 X5 X6
1 male 6 9 9 other 145
另一个问题是answers 的第一个列表中的值可以包含多个值。而且我真的不知道如何处理它,因为我需要准确地为变量分配它们的值。
所以,我无法想象如何得到这个。直觉上我觉得lapply()可能对我有帮助,但是我不知道如何正确使用。
【问题讨论】:
-
请分享一些可重现的数据 - 最好是
dput(test[1:3])用于复制/粘贴数据共享中的前 3 个元素。 -
@GregorThomas 抱歉,我该怎么办?我没有得到你的建议。
-
@GregorThomas 如果你想让我在这里分享这些数据,我应该说我做不到。这些列表中包含一些敏感数据。
-
然后您需要清理一个小子集或生成一组样本数据。嵌套列表的图片不足以提供答案。
-
我希望您分享一些与您的真实数据具有相同结构的样本数据。如果您无法分享
dput(test[1:3]),也许您可以生成具有相同结构的假数据,或者编辑示例数据以删除/更改敏感数据点。