我想要获取表格的数据
before = data.frame(attr = c(1,30,4,6), type=c('foo_and_bar','foo_and_bar_2'))
attr type
1 1 foo_and_bar
2 30 foo_and_bar_2
3 4 foo_and_bar
4 6 foo_and_bar_2
Run Code Online (Sandbox Code Playgroud)
并使用split()上面的列" type"来得到这样的东西:
attr type_1 type_2
1 1 foo bar
2 30 foo bar_2
3 4 foo bar
4 6 foo bar_2
Run Code Online (Sandbox Code Playgroud)
我提出了一些令人难以置信的复杂问题,涉及某种形式的apply工作,但我已经错了.这似乎太复杂了,不是最好的方式.我可以使用strsplit如下,但不清楚如何将其恢复到数据框中的2列.
> strsplit(as.character(before$type),'_and_')
[[1]]
[1] "foo" "bar"
[[2]]
[1] "foo" "bar_2"
[[3]]
[1] "foo" "bar"
[[4]]
[1] "foo" "bar_2"
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何指示.我还没有完全理解R列表.
我有一个包含25个变量和超过200万个观测值的数据集.我的一个变量是我想要拆分的几个不同"类别"的组合,每列显示1个类别(类似于stata中的拆分).例如:
# Name Age Number Events First
# Karen 24 8 Triathlon/IM,Marathon,10k,5k 0
# Kurt 39 2 Half-Marathon,10k 0
# Leah 18 0 1
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像:
# Name Age Number Events_1 Event_2 Events_3 Events_4 First
# Karen 24 8 Triathlon/IM Marathon 10k 5k 0
# Kurt 39 2 Half-Marathon 10k NA NA 0
# Leah 18 0 NA NA NA NA 1
Run Code Online (Sandbox Code Playgroud)
我已经查看了stackoverflow但没有发现任何有效的东西(一切都给我一些错误).任何建议将不胜感激.
注意:可能不重要,但1人的最大类别数是19,因此我需要创建Event_1:Event_19
注释:以前的堆栈溢出建议使用单独的函数,但是此函数似乎不适用于我的数据集.当我输入函数时程序运行但是当它完成时没有任何改变,没有输出,也没有错误代码.当我尝试使用其他线程中提出的其他建议时,我收到了错误消息.但是,我终于通过使用cSplit功能得到了它.谢谢你的帮助!