【问题标题】:How to create a R data.frame from string?如何从字符串创建 R data.frame?
【发布时间】:2017-04-24 01:42:57
【问题描述】:

在 R 中调试代码时,我想从类似的字符串创建一个数据帧

"Column_A|Column_B
 Val-1|Val-2
 Val-3|Val-4"

我记得在某处看到一段代码,它执行以下操作:

df <- some_function("input string")

但好像记不住语法

我不想采取创建两个独立向量并从中创建数据框的方法,例如:

column_a <- c("Val-1", "Val-2")
column_b <- c("Val-3", "Val-4")
df <- data.frame(column_a = column_a, column_b = column_b)

【问题讨论】:

  • read.table(text = ...)

标签: r dataframe rstudio


【解决方案1】:

你正在寻找read.table:

df <- read.table(text="
Column_A|Column_B
Val-1|Val-2
Val-3|Val-4", header=TRUE, sep="|")

【讨论】:

  • 您知道如何避免文本中出现多余的空格吗?我现在结束了 str_trim。
  • 除非多余的空格始终在同一个地方,否则在构建数据框之后进行修剪通常是最直接的打开方式。
【解决方案2】:

或者,我们也可以使用read.csv

df <- read.csv(text = "Column_A|Column_B
                        Val-1|Val-2
                       Val-3|Val-4", sep = "|")

df

#  Column_A Column_B
#1   Val-1    Val-2
#2   Val-3    Val-4

【讨论】:

  • 该解决方案将起作用,但左侧的所有额外空间也将包括在内。因此,df[1,1] 不是“Val-1”,而是“[]+Val-1”。 paste0() 甚至 paste() 加上 sep = "|" 参数会更干净。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
相关资源
最近更新 更多