作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个看起来像这样的数据集-
col11 ATOM 1 N ILE A 12 67.611 47.640 52.312 1.00 12.44 N 2 ATOM 2 CA ILE A 12 66.381 47.660 51.520 1.00 25.25 C
It has a single column called col1. I want to separate into 12 columns for which I'm using the following command-
try=separate(subset,col1,c("name","S.No","Atom Name","Residue Name","Symbol","Residue Number","X-cor","Y-cor","Z-cor","Uk1","Uk2","Symbol"), sep= " ")
但我不断收到以下错误,我不明白-
Warning message: Too many values at 3929 locations: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
它给了我以下输出-
name S.No Atom Name Residue Name Symbol Residue Number X-cor Y-cor Z-cor Uk1 Uk2 Symbol1 ATOM 1 N ILE2 ATOM 2 CA ILE A
非常感谢任何解决此问题的帮助。谢谢!
最佳答案
tidyr
应该有一个更优雅的解决方案。但是没有那个库,这就是我所拥有的
data.frame(do.call(rbind, unlist(apply(subset, 1, function(x) strsplit(x, "\\s+")),recursive=FALSE)))
我假设您的数据集名称是 subset
。对于 data.frame 的每一行,您将其按空格分开,即这部分 strsplit(x, "\\s+"))
。剩下的基本上就是将它放在 data.frame 中。
刚想出来,在您的代码中只需将 sep= ""
替换为 sep= "\\s+"
。\\s+
至少在空间上声明,而你的 ""
恰好是一个空间。
关于r - 使用 tidyr 在 R 中将行拆分为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35260483/
我是一名优秀的程序员,十分优秀!