【问题标题】:How to move data points into individual rows?如何将数据点移动到单独的行中?
【发布时间】:2019-12-29 04:05:05
【问题描述】:
Data currently looks like this:

Distance
0[]
1[.8]
2[.7 .5]
3[.8 .5 .2]
4[.4 .8 .8 .7]

我想要以下:

.8
.7
.8
.4
.5
.5
.8
.2
.8
.7

基本上,每行的第一个数字,然后是第二个,然后是第三个

代码

data2 <- substring(data$Distance, 2) 
data3 <- data.frame(dist2 = scan(text=gsub("\\d+\\[|[^.0-9]+","\n",data2),quiet = TRUE))

这让我很兴奋

.8
.7
.5
.8
.5
.2
.4
.8
.8
.7

这让我在进入下一行之前将每个数字放在一行中

【问题讨论】:

    标签: r


    【解决方案1】:

    在基础 R 中,您可以使用 gsub 删除除 .[ 之前的任何数字之外的所有非数字,然后使用 read.table

     read.table(text=gsub("\\d+\\[|[^.0-9]+","\n",data$Distance))
        V1
    1  0.8
    2  0.7
    3  0.5
    4  0.8
    5  0.5
    6  0.2
    7  0.4
    8  0.8
    9  0.8
    10 0.7
    

    【讨论】:

    • 我明白了:[1] 0.0000000 1 0.8 2 0.7 0.5 3 0.8 0.5 0.2... 1、2、3... 仍在数据中。我该如何删除这些?到目前为止谢谢!
    • @carolin 你可以在你的问题中粘贴dput(head(data)) 吗?您的数据似乎有所不同,因为正则表达式 \\d+\\[ 清楚地表明必须删除 [ 之前的所有数字
    • 我在您的代码之前添加了以下内容,data2
    猜你喜欢
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2018-01-05
    • 2018-02-09
    • 1970-01-01
    • 2016-11-22
    • 2013-08-14
    相关资源
    最近更新 更多