根据名称向量(字符向量)重命名数据框中的列

时间:2018-11-23 09:41:27

标签: r

我对使用R很陌生,我敢肯定有一个简单的解决方案可以解决这个问题,但是我正在用它拔头发。

我正在读取没有列名的固定宽度文件(fwf)。我将大多数列名作为一个单独的带分隔符的文件中的字段。我正在尝试将定界文件中的列名分配给fwf。

我已将保存到名为VNames的字符向量的列名导入(例如chr [1:225]“ NameAAA”“ NameAAB” NameAAC“ ...)我想将这些名称应用为read.fwf

的一部分
CombMatrix <- read.fwf(
   file = fixedFileName,
   width = c(32, 3, 5, 15, rep(1, 225)),
   col.names = ("ID", "Gender", "Score", "Department", VNames),
   na.string = "",
   fill = TRUE,
   strip.white = TRUE)

我一直遇到错误

  

错误:

     

意外的','in:“ width = c(32,3,5,15,rep(1,225)),col.names =   (“ ID”,“

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

col.names参数需要一个名称向量才能起作用,您没有将它们放在向量中。

尝试一下:

CombMatrix <- read.fwf(
   file = fixedFileName,
   width=c(32,3,5,15,rep(1, 225)),
   col.names = c("ID", "Gender", "Score", "Department", VNames),
   na.string="",
   fill=TRUE,
   strip.white=TRUE)

答案 1 :(得分:0)

如果您灵活使用读取文件的工具,那么tidyverse是一个非常有用的库,可用于:

install.packages('tidyverse')
library('tidyverse')

read_fwf(file=fixedFileName, col_positions=fwf_widths(c(32,3,5,15,rep(1, 225)), 
    col_names = c("ID", "Gender", "Score", "Department", VNames)), col_types = NULL,
    trim_ws = TRUE)

如果您需要任何文档的帮助,

?tidyverse
?read_fwf
?fwf_widths
etc