我有一个txt文件,其中有一列,其中有一些+符号,没有与之关联的列名.下面提供了一个示例.

   Cat    dog        bird
    A       b   +       c
    B       a   +       c
    C       b           d
    B       c   +       a

当try 将其读入R时,使用

read.table(file, header = TRUE, sep = " ")

我得到一个错误,即列数多于列名.如何将此文件读入R,方法是删除+‘S的列,还是为其指定列名?

推荐答案

使用readr::read_fwf可以相当直观地获得所需的输出.

library(readr)

df <- read_fwf("file", skip = 1)[, c(1, 2, 4)]

colnames(df) <- unlist(read_fwf("file", n_max = 1))[c(1, 2, 4)]

df
# A tibble: 4 × 3
  Cat   dog   bird 
  <chr> <chr> <chr>
1 A     b     c    
2 B     a     c    
3 C     b     d    
4 B     c     a

base R read.fwf

df <- data.frame(sapply(read.fwf("file", widths=c(6, 7, 5, 7), skip = 1), 
  trimws))

colnames(df) <- sapply(read.fwf("file", widths=c(6, 7, 5, 7), n = 1), trimws)

df[,c(1, 2, 4)]
  Cat dog bird
1   A   b    c
2   B   a    c
3   C   b    d
4   B   c    a

R相关问答推荐

R:如何自动化变量创建过程,其中我需要基于ifelse()为现有变量的每个级别创建一个单独的变量

用单个表达匹配多个替代模式

有没有方法将琴弦完全捕捉到R中的多边形?

如何根据包含相同值的某些列获取总额

ggplot 2中的地块底图(basemaps_gglayer()不起作用)

使用对管道内单元格的引用生成新变量

任意列的欧几里得距离

隐藏e_mark_line的工具提示

将向量组合到一个数据集中,并相应地命名行

Ggplot2中的重复注记

在数组索引上复制矩阵时出错

Geom_Hline将不会出现,而它以前出现了

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

从多个可选列中选取一个值到一个新列中

在R中使用列表(作为tibble列)进行向量化?

如何在PrePlot()中将多个元素设置为斜体

将工作目录子文件夹中的文件批量重命名为顺序

创建新列,其中S列的值取决于该行S值是否与其他行冗余

将Geojson保存为R中的shapefile

如何准确地指出Read_delim所面临的问题?