将带有行号的空格分隔的 Stack Overflow 数据直接读取到 R 中

dcs*_*uka 5 r dataframe dplyr readr tibble

通常,Stack Overflow R 问题可以共享只是 data.frame 输出的示例数据,而不是dput

\n
      id cate  result\n 1     1 yes       1\n 2     1 yes      NA\n 3     1 no       NA\n 4     2 no       NA\n 5     2 yes       1\n 6     2 yes      NA\n 7     2 no       NA\n 8     3 no       NA\n 9     3 yes      NA\n10     3 no       NA\n11     3 yes       1\n12     3 yes      NA\n13     3 no       NA\n14     3 yes      NA\n15     4 yes       1\n16     4 yes      NA\n17     4 yes      NA\n18     4 no       NA\n19     4 no       NA \n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
readr::read_table("   row_num   id cate  result\n 1     1 yes       1\n 2     1 yes      NA\n 3     1 no       NA\n 4     2 no       NA\n 5     2 yes       1\n 6     2 yes      NA\n 7     2 no       NA\n 8     3 no       NA\n 9     3 yes      NA\n10     3 no       NA\n11     3 yes       1\n12     3 yes      NA\n13     3 no       NA\n14     3 yes      NA\n15     4 yes       1\n16     4 yes      NA\n17     4 yes      NA\n18     4 no       NA\n19     4 no       NA ") |>\n  dplyr::select(-row_num)\n\n# # A tibble: 19 \xc3\x97 3\n#       id cate  result\n#    <dbl> <chr>  <dbl>\n#  1     1 yes        1\n#  2     1 yes       NA\n#  3     1 no        NA\n#  4     2 no        NA\n#  5     2 yes        1\n#  6     2 yes       NA\n#  7     2 no        NA\n#  8     3 no        NA\n#  9     3 yes       NA\n# 10     3 no        NA\n# 11     3 yes        1\n# 12     3 yes       NA\n# 13     3 no        NA\n# 14     3 yes       NA\n# 15     4 yes        1\n# 16     4 yes       NA\n# 17     4 yes       NA\n# 18     4 no        NA\n# 19     4 no        NA\n
Run Code Online (Sandbox Code Playgroud)\n

是否有任何更简单的包/技巧可以一步读取 data.frame 或 tibble 输出?

\n

akr*_*run 7

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()
Run Code Online (Sandbox Code Playgroud)

-输出

> 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
Run Code Online (Sandbox Code Playgroud)


Qui*_*ten 6

或者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
Run Code Online (Sandbox Code Playgroud)

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