【发布时间】:2019-12-24 14:56:10
【问题描述】:
我已经导入了一个包含许多(数千个)视频和不同变量的 JSON 字典。其中一个变量是“标签”,每个观察结果都不同。
例如
1 c("music", "guitar", "rock")
2 c("music", "diy", "recording")
3 c("hiking", "social")
4 tutorial
我想向数据框中添加新列,这些列是给定标签存在或不存在的虚拟变量
music guitar rock diy recording hiking social tutorial
1 1 1 1 0 0 0 0 0
2 1 0 0 1 1 0 0 0
3 0 0 0 0 0 1 1 0
4 0 0 0 0 0 0 0 1
也有类似的问答,比如this one,但恐怕数据结构和目标不一样。
我没有自己有分隔符的字符串(例如 c("a,b,c", "c,d")),但分隔符仅由 c() 函数给出(在某些情况下)情况下只有一个标签本身,如“教程”中)。同时,可能的标签是事先不知道的,每个观察都可能为数据框添加新的列。
提前致谢
【问题讨论】:
-
请使用
dput()添加一些示例数据。 -
我没有完整的答案给你,但是你可以使用下面的代码来获取每个观察的所有标记的向量
apply(abc,1,function(x){unlist(strsplit(x$tags,", "))})。