将带有行号的以空格分隔的堆栈溢出数据直接读取到R中



通常Stack Overflow R问题可以共享样本数据,而不是dput:

id cate  result
1     1 yes       1
2     1 yes      NA
3     1 no       NA
4     2 no       NA
5     2 yes       1
6     2 yes      NA
7     2 no       NA
8     3 no       NA
9     3 yes      NA
10     3 no       NA
11     3 yes       1
12     3 yes      NA
13     3 no       NA
14     3 yes      NA
15     4 yes       1
16     4 yes      NA
17     4 yes      NA
18     4 no       NA
19     4 no       NA 

我发现在回答问题时将其读入R的一种方法是手动添加row_num列,然后添加read_tableselect(-row_num)

readr::read_table("   row_num   id cate  result
1     1 yes       1
2     1 yes      NA
3     1 no       NA
4     2 no       NA
5     2 yes       1
6     2 yes      NA
7     2 no       NA
8     3 no       NA
9     3 yes      NA
10     3 no       NA
11     3 yes       1
12     3 yes      NA
13     3 no       NA
14     3 yes      NA
15     4 yes       1
16     4 yes      NA
17     4 yes      NA
18     4 no       NA
19     4 no       NA ") |>
dplyr::select(-row_num)
# # A tibble: 19 × 3
#       id cate  result
#    <dbl> <chr>  <dbl>
#  1     1 yes        1
#  2     1 yes       NA
#  3     1 no        NA
#  4     2 no        NA
#  5     2 yes        1
#  6     2 yes       NA
#  7     2 no        NA
#  8     3 no        NA
#  9     3 yes       NA
# 10     3 no        NA
# 11     3 yes        1
# 12     3 yes       NA
# 13     3 no        NA
# 14     3 yes       NA
# 15     4 yes        1
# 16     4 yes       NA
# 17     4 yes       NA
# 18     4 no        NA
# 19     4 no        NA

有没有更简单的包/技巧可以在一步中读取data.frame或tibble输出?

我们可以在复制行后使用soread

#source("http://news.mrdwab.com/install_github.R")
#install_github("mrdwab/overflow-mrdwab")
library(overflow)
# COPY THE DATA FROM STACK OVERFLOW, THEN RUN
df1 <- soread()

-输出

> df1
id cate result
1   1  yes      1
2   1  yes     NA
3   1   no     NA
4   2   no     NA
5   2  yes      1
6   2  yes     NA
7   2   no     NA
8   3   no     NA
9   3  yes     NA
10  3   no     NA
11  3  yes      1
12  3  yes     NA
13  3   no     NA
14  3  yes     NA
15  4  yes      1
16  4  yes     NA
17  4  yes     NA
18  4   no     NA
19  4   no     NA

read.table:

df <- read.table(text = "      id cate  result
1     1 yes       1
2     1 yes      NA
3     1 no       NA
4     2 no       NA
5     2 yes       1
6     2 yes      NA
7     2 no       NA
8     3 no       NA
9     3 yes      NA
10     3 no       NA
11     3 yes       1
12     3 yes      NA
13     3 no       NA
14     3 yes      NA
15     4 yes       1
16     4 yes      NA
17     4 yes      NA
18     4 no       NA
19     4 no       NA", header = TRUE)
df
#>    id cate result
#> 1   1  yes      1
#> 2   1  yes     NA
#> 3   1   no     NA
#> 4   2   no     NA
#> 5   2  yes      1
#> 6   2  yes     NA
#> 7   2   no     NA
#> 8   3   no     NA
#> 9   3  yes     NA
#> 10  3   no     NA
#> 11  3  yes      1
#> 12  3  yes     NA
#> 13  3   no     NA
#> 14  3  yes     NA
#> 15  4  yes      1
#> 16  4  yes     NA
#> 17  4  yes     NA
#> 18  4   no     NA
#> 19  4   no     NA

创建于2022-07-29由reprex包(v2.0.1(

您也可以进行

library(data.table)
fread('      id cate  result
1     1 yes       1
2     1 yes      NA
3     1 no       NA
4     2 no       NA
5     2 yes       1
6     2 yes      NA
7     2 no       NA
8     3 no       NA
9     3 yes      NA
10     3 no       NA
11     3 yes       1
12     3 yes      NA
13     3 no       NA
14     3 yes      NA
15     4 yes       1
16     4 yes      NA
17     4 yes      NA
18     4 no       NA
19     4 no       NA ')[,-1]

最新更新