使用R脚本将列中的多个长度字符串拆分并清理为多个列

时间:2016-11-10 03:03:08

标签: r

我的数据格式如下:

col1    col2    col3    test2
25.5    39.65           36.5
28.15   55.66   33.26   **55.658**
45      56.9565         47.8
95.6666 89.2343 51.56   **51.562**

我需要将列test1中的值拆分为三列(col1,col2和col3),然后比较并突出显示列(test2)中的值,该值在三个值中的一个值的+/- 0.1范围内列(col1,col2和col3)如下图所示。

请建议如何继续这样做。

return view('contact')->with('people', $people);
return view('contact')->withPeople($people);
return view('contact')->with(compact('people');
return view('contact', ['people'=>$people]);

string split (and cleaned) into columns

1 个答案:

答案 0 :(得分:2)

我们可以将gsubread.table一起使用以提取“价值”'列分为三列

df1 <- read.table(text=gsub("\\([^)]+\\)|[A-Za-z]+", "", test1$value), 
                    header=FALSE, fill=TRUE, col.names = paste0("col", 1:3))

cbind使用&#39; test2&#39;

df2 <- cbind(df1, test2)
df2
#    col1    col2  col3  value
#1 25.5000 39.6500    NA   36.5
#2 28.1500 55.6600 33.26 55.658
#3 45.0000 56.9565    NA   47.8
#4 95.6666 89.2343 51.56 51.562

更新

使用新数据

cbind(read.table(text=gsub("\\([^)]+\\)|[A-Za-z]+|[;,]\\s*", "", 
   test1$value), header=FALSE, fill=TRUE, col.names = paste0("col", 1:3)), test2)
#    col1    col2  col3  value
#1 25.5000 39.6500    NA   36.5
#2 28.1500 55.6600 33.26 55.658
#3 45.0000 56.9565    NA   47.8
#4 95.6666 89.2343 51.56 51.562