gpt4 book ai didi

r - 使用 tidyr 在 R 中将行拆分为列

转载 作者:行者123 更新时间:2023-12-01 12:29:56 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据集-

                                                                              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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com