我想要完成的是将列拆分为多个列.我希望第一列包含"F",第二列"US",第三列"CA6"或"DL",第四列是"Z13"或"U13"等等.我的整个df遵循相同的模式X.XX.XXXX.XXX或X.XX.XXX.XXX或X.XX.XX.XXX我知道第三列是我的问题所在,因为长度不同.我过去只使用了substr,我可以在这里使用一些if语句,但是想学习如何使用stringr包和POSIX来做到这一点(除非有更好的选择).先感谢您.
这是我的df:
c("F.US.CLE.V13", "F.US.CA6.U13", "F.US.CA6.U13", "F.US.CA6.U13",
"F.US.CA6.U13", "F.US.CA6.U13", "F.US.CA6.U13", "F.US.CA6.U13",
"F.US.DL.U13", "F.US.DL.U13", "F.US.DL.U13", "F.US.DL.Z13", "F.US.DL.Z13"
)
Run Code Online (Sandbox Code Playgroud) 我有一个大约150万行和5列的数据帧.一个变量(VARIABLE)属于这种类型NATIONALITY_YEAR(例如SPAIN_1998),我想将它分成两列,一列包含国籍,这是在下划线之前的名称的左侧,另一列包含年份,右侧下划线.我尝试过concat.split,这应该是最简单的方法:
aa <- concat.split(mydata, "VARIABLE", sep = "_", drop = F)
Run Code Online (Sandbox Code Playgroud)
但运行2小时后它没有产生任何输出.我不确定是否应该让它运行更长时间,或者是否有非耗时的方法来执行此操作.
对此问题的任何帮助将非常感谢!
这是一个可重现的(子集!)样本:
mydata<- structure(list(PROVINCE = c(1L, 4L, 7L, 8L, 11L, 14L, 17L, 20L,
24L, 28L, 30L, 33L, 36L, 41L, 44L, 46L, 48L, 3L, 6L, 8L, 10L,
13L, 15L, 18L, 23L, 26L, 29L, 31L, 35L, 38L, 41L, 46L, 47L, 2L,
4L, 8L, 8L, 11L, 15L, 17L, 21L, 24L, 28L, 30L, 33L, 37L, 41L,
45L, 46L, 49L, 3L, 6L, 8L, 10L, 13L, 15L, 19L, 23L, 27L, 29L,
32L, 36L, 39L, …Run Code Online (Sandbox Code Playgroud) 在R中,我有以下数据帧:
Name Category
1 Beans 1.12.5
2 Pears 5.7.9
3 Eggs 10.6.5
Run Code Online (Sandbox Code Playgroud)
我想要的是以下内容:
Name Cat1 Cat2 Cat3
1 Beans 1 12 5
2 Pears 5 7 9
3 Eggs 10 6 5
Run Code Online (Sandbox Code Playgroud)
理想情况下,在plyr中构建的一些表达式会很好......
我会调查我的一面,但搜索这个可能需要我很多时间,我只是想知道你们中有些人是否有一些提示来执行此操作......
我有这样的文件
1880.1.1 74
1881.1.1 74
1882.1.1 75
1883.1.1 79
1884.1.1 111
1885.1.1 145
Run Code Online (Sandbox Code Playgroud)
我想创建一个这样的数据帧
1880 1 1 74
1881 1 1 74
1882 1 1 75
1883 1 1 79
1884 1 1 111
1885 1 1 145
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用gsub功能时,我失败了......非常感谢!