【问题标题】:In RStudio -How do I import a csv dataset with no columns specified?在 RStudio - 如何导入未指定列的 csv 数据集?
【发布时间】:2019-03-18 23:13:01
【问题描述】:

我正在使用一种称为视野周界的医疗设备,它输出分号分隔的列表,但未指定 csv 中的列,我想指定有多少项目构成完整的记录,以便将其制成一张桌子。我在 RStudio 工作,对数据进行统计分析。

每四个值遵循以下模板的示例 [x-value, y-value, seen(yes/no), color(red/blue)]

1;2;yes;blue;3;4;no;red;4;7;yes;blue;5;4;yes;red

所以这里有 4 条完整的记录,但没有说明这一点。

实际上,我的模板有 13 个变量,但这是一个简化的示例。

非常感谢您的指导

【问题讨论】:

  • “输出一个分号分隔的列表,但不指定 csv 中的列” 我对文件格式感到困惑。首先,CSV 文件总是 以逗号分隔(CSV 中的“C”代表“逗号”);因为您声明条目用分号分隔,所以这不是 CSV 文件。其次,您的意思是说在您的文件中,行不被换行符分隔吗?这就是挑战吗?

标签: r csv dataframe data-import


【解决方案1】:

我将这个问题解释为:“当列数已知时,如何导入(到 R)分号分隔的数据而没有换行符?”

您可以使用read.delim() 执行此操作,方法是指定header=FALSE 并使用col.names 参数的长度指示列数。

input_text <- "1;2;yes;blue;3;4;no;red;4;7;yes;blue;5;4;yes;red"
read.delim(text=input_text, sep=";", col.names=c("a", "b", "c", "d"), header=F)

#   a b   c    d
# 1 1 2 yes blue
# 2 3 4  no  red
# 3 4 7 yes blue
# 4 5 4 yes  red

【讨论】:

  • read.table,因为read.delim 调用read.table(..., header=TRUE)read.table 默认为header=FALSE。 - 所以read.table(text=txt, col.names=c("a","b","c","d"), sep=";")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 2020-09-20
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多