R read.csv 来自内联字符串的数据,带有 csv 文件内容
R read.csv data from inline string with a csv file content
这应该是一件微不足道的事情,但我没有找到任何东西。
我在 csv 文件中有以下数据
test.csv
var1,var2
'a',1
'b',2
我用
读入 R
d <- read.csv('test.csv')
我有办法在我的 R 代码中插入 csv 文件的内容吗?类似于:
d <- read.csv(
'var1,var2\n
'a',1\n
'b',2')
(以上语法无效)
如何告诉 R 输入字符串应该被视为数据本身而不是包含它的文件名?
这将用于向 Rmarkdown 添加小表格,而无需创建一堆辅助文件
当然我可以添加与
相同的信息
d <- data.frame(
var1=c('a','b'),
var2=1,2
)
但按向量列出数据向量会减慢处理速度。 csv的逐行结构更简单
试试这个
CSV_Text = "var1,var2
'a',1
'b',2"
Dat = read.csv(text=CSV_Text, header=TRUE)
我们可以使用 fread
会非常快
library(data.table)
fread(txt)
# var1 var2
#1: a 1
#2: b 2
数据
txt = "var1,var2
a,1
b,2"
tibble package's tribble()
方法是在 R 文件中以人类可读、机器可读且易于 maintain/edit 的方式写入短表格数据的另一种很好的选择.作为奖励,它使得使用 R 表达式作为 table.
中的值变得容易
# Column names are prefaced with "~"
my_tibble1 <- tribble(
~colA, ~colB, ~colC,
"a", 1, 10.1,
"b", 2, 3.4,
"c", 3, 5.6
)
#> # A tibble: 3 x 3
#> colA colB colC
#> <chr> <dbl> <dbl>
#> 1 a 1 10.1
#> 2 b 2 3.4
#> 3 c 3 5.6
# tribble will create a list column if the value in any cell is
# not a scalar
my_tibble2 <- tribble(
~x, ~y,
"a", 1:3,
"b", 4:6
)
#> # A tibble: 2 x 2
#> x y
#> <chr> <list>
#> 1 a <int [3]>
#> 2 b <int [3]>
如果您之前没有遇到过 tibbles,它们是 data.frame
的(大部分)替代品。如果您确实需要确保您的数据是 data.frame
而不是 tibble
,您可以将其转换为 as.data.frame(...)
.
这应该是一件微不足道的事情,但我没有找到任何东西。
我在 csv 文件中有以下数据
test.csv
var1,var2
'a',1
'b',2
我用
读入 Rd <- read.csv('test.csv')
我有办法在我的 R 代码中插入 csv 文件的内容吗?类似于:
d <- read.csv(
'var1,var2\n
'a',1\n
'b',2')
(以上语法无效)
如何告诉 R 输入字符串应该被视为数据本身而不是包含它的文件名?
这将用于向 Rmarkdown 添加小表格,而无需创建一堆辅助文件
当然我可以添加与
相同的信息d <- data.frame(
var1=c('a','b'),
var2=1,2
)
但按向量列出数据向量会减慢处理速度。 csv的逐行结构更简单
试试这个
CSV_Text = "var1,var2
'a',1
'b',2"
Dat = read.csv(text=CSV_Text, header=TRUE)
我们可以使用 fread
会非常快
library(data.table)
fread(txt)
# var1 var2
#1: a 1
#2: b 2
数据
txt = "var1,var2
a,1
b,2"
tibble package's tribble()
方法是在 R 文件中以人类可读、机器可读且易于 maintain/edit 的方式写入短表格数据的另一种很好的选择.作为奖励,它使得使用 R 表达式作为 table.
# Column names are prefaced with "~"
my_tibble1 <- tribble(
~colA, ~colB, ~colC,
"a", 1, 10.1,
"b", 2, 3.4,
"c", 3, 5.6
)
#> # A tibble: 3 x 3
#> colA colB colC
#> <chr> <dbl> <dbl>
#> 1 a 1 10.1
#> 2 b 2 3.4
#> 3 c 3 5.6
# tribble will create a list column if the value in any cell is
# not a scalar
my_tibble2 <- tribble(
~x, ~y,
"a", 1:3,
"b", 4:6
)
#> # A tibble: 2 x 2
#> x y
#> <chr> <list>
#> 1 a <int [3]>
#> 2 b <int [3]>
如果您之前没有遇到过 tibbles,它们是 data.frame
的(大部分)替代品。如果您确实需要确保您的数据是 data.frame
而不是 tibble
,您可以将其转换为 as.data.frame(...)
.