r - 列名在 read.table 或 read.csv 上向左移动

标签 r data-analysis read.table read.csv

最初我有这个 TSV 文件(样本):

name   type   qty   
cxfm   1C     0
d2     H50    2
g3g    1G     2
hb     E37    1
nlx    E45    4

所以我使用 read.csv 从 .tsv 文件中读取数据,但我总是得到这个输出:

name   type   qty   
1      cxfm   1C     0
2      d2     H50    2
3      g3g    1G     2
4      hb     E37    1
5      nlx    E45    4

而不是得到这个:

       name   type   qty   
1      cxfm   1C     0
2      d2     H50    2
3      g3g    1G     2
4      hb     E37    1
5      nlx    E45    4

有什么想法吗?这是我用来读取文件的内容:

    file_list<-list.files()

for (file in file_list){

  if (!exists("dataset")){
    dataset <- read.table(file, header = TRUE, sep = "\t", row.names = NULL, blank.lines.skip = TRUE, fill = TRUE)
    names(dataset) <- c("rowID", names(dataset)[1:ncol(dataset)-1])
    }

  if (exists("dataset")){
    temp_dataset <- read.table(file, header = TRUE, sep = "\t", row.names = NULL, blank.lines.skip = TRUE, fill = TRUE)
    names(temp_dataset) <- c("rowID", names(temp_dataset)[1:ncol(temp_dataset)-1])
    dataset <- rbind(dataset, temp_dataset)
    rm(temp_dataset)
  }

}

dataset <- unique(dataset)

write.table(dataset, file = "dataset.tsv", sep = "\t")

最佳答案

源 CSV 文件中似乎缺少列标题。这里的一个选择是保持你的 read.csv() 调用不变,并简单地调整结果数据框的名称:

df <- read.csv(file,
               header = TRUE,
               sep = "\t",
               row.names = NULL,
               blank.lines.skip = TRUE,
               fill = TRUE,
               comment.char = "",
               quote = "", stringsAsFactors = FALSE)

names(df) <- c("rowID", names(df)[1:ncol(df)-1])

关于r - 列名在 read.table 或 read.csv 上向左移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302612/

相关文章:

r - 在图上添加回归线方程和 R^2

python - 如何将 ML 算法与词袋中的特征向量数据结合使用?

r - 在 R 的 read.table() 中指定多字符注释标记

R 3.5 - read.csv 无法读取 UTF-16 csv 文件

r - 检查等长列表中元素的长度

r - 更改顶点边框的线类型

sql - 如何用SQL得到我想要的条件计算

python-3.x - python 中的零膨胀泊松模型

r - Append\Union 两个或几个表为一个

css - 在 R Shiny 应用程序中调整flexdashboard仪表的布局?