【问题标题】:combine multiple columns read.csv in r在 r 中组合多个列 read.csv
【发布时间】:2015-09-11 14:09:42
【问题描述】:

有没有办法在从 csv 文件中读取数据时将多列合并为一列。

例子

我在文件中的数据格式如下 ID,DOB,FirstName,LastName,DOJ

在 read.csv/read.table 中是否可以将其转换为四列,其中名字和姓氏组合在一起得到一个名为 Name 的新列。

【问题讨论】:

  • 可以使用?paste合并列
  • 我想边看书边做。实际上我的数据集包含 1 GB 文件。读入内存后执行此操作需要时间。有没有办法在阅读时做到这一点,比如在 read.csv 或 read.table 中
  • 查看biostat.jhsph.edu/~rpeng/docs/R-large-tables.html 了解阅读大文件的好技巧

标签: r


【解决方案1】:

我会使用 sqldf 包来做到这一点,例如:

require(sqldf)

# Example Data
df <- data.frame(
  ID  = 1:5,
  DOB = 1:5,
  FirstName = c("a", "b", "c", "d", "e"),
  LastName = c("A", "B", "C", "D", "E"),
  DOJ = 1:5)

# Write to disc to load it afterwards
write.csv(df, "example.csv", quote = FALSE, row.names = FALSE)

# Using SQL to combine ...
sql <- "Select ID, DOB, FirstName || ' ' || LastName as Name from file"
out <- read.csv.sql("example.csv", sql = sql)
out
# ID DOB Name
# 1  1   1  a A
# 2  2   2  b B
# 3  3   3  c C
# 4  4   4  d D
# 5  5   5  e E

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 2017-12-20
    • 2020-08-09
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2020-07-02
    相关资源
    最近更新 更多