相关疑难解决方法(0)

将数据框架字符串列拆分为多个列

我想要获取表格的数据

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列表.

string split r dataframe r-faq

218
推荐指数
13
解决办法
32万
查看次数

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功能得到了它.谢谢你的帮助!

split r

6
推荐指数
1
解决办法
5073
查看次数

标签 统计

r ×2

split ×2

dataframe ×1

r-faq ×1

string ×1