使用read.table时创建的其他列

使用read.table时创建的其他列,r,read.table,R,Read.table,由于我不能提供我正在使用的.txt文件,我只能描述情况 该文本文件没有缺少的值,并且是一个选项卡分隔的文本文件,或者至少看起来是这样。当我使用制表符分隔符时,它似乎很好。列标题包含包含空格的名称(例如父项的年龄) 当我使用下面的代码行加载数据时,看起来一切都正常加载。然而,我最终得到了一堆重复的列 例如-“父代年龄”将重新标记为父代年龄,因为列名中不能有空格,但第二列的名称与值相同,但名称为-父代年龄1 问题:我需要做什么来确保不创建这些“重复”列?列Age.of.Parent1显然不在数据集中

由于我不能提供我正在使用的.txt文件,我只能描述情况

该文本文件没有缺少的值,并且是一个选项卡分隔的文本文件,或者至少看起来是这样。当我使用制表符分隔符时,它似乎很好。列标题包含包含空格的名称(例如父项的年龄)

当我使用下面的代码行加载数据时,看起来一切都正常加载。然而,我最终得到了一堆重复的列

例如-“父代年龄”将重新标记为父代年龄,因为列名中不能有空格,但第二列的名称与值相同,但名称为-父代年龄1

问题:我需要做什么来确保不创建这些“重复”列?列Age.of.Parent1显然不在数据集中,但在可能的20列中,我总共得到了30列(10个新的重复项,末尾有这个“1”)


下面的示例演示如何将数据帧保存在选项卡分隔的文件中并从中读取

library(caroline)

Age <- c(20, 30, 50) 
Names <- c("Name1", "Name2", "Name3") 
df <- data.frame(Age, Names)
colnames(df) <- c("Age of Parents", "Names of Parents")

#writing the data frame to a tab delimited text file
write.delim(df, file = "foo.txt")

#reading the tab delimited text file 
#The argument fill is logical. If TRUE then in case the rows have unequal length, blank fields are implicitly added.
read.delim(file="foo.txt", header = TRUE, sep = "\t", fill = TRUE)
图书馆(卡罗琳)

年龄您可以在
read.table
中使用
check.names=FALSE
,但是关于重复列的问题,没有可复制的示例就不清楚了。当我创建一个文本文件,其中有两列名称相同,分别为“父代年龄”和“父代年龄”,并使用
read.table
进行读取时,我可以复制这一点。您可能必须仔细检查源文件,至少检查那些额外列包含数据的行。可能的陷阱可能是重复的选项卡
\t\t
,或者在行尾被删除。但是,如果不显示数据(至少是最上面的行),这一切都是推测性的。
library(caroline)

Age <- c(20, 30, 50) 
Names <- c("Name1", "Name2", "Name3") 
df <- data.frame(Age, Names)
colnames(df) <- c("Age of Parents", "Names of Parents")

#writing the data frame to a tab delimited text file
write.delim(df, file = "foo.txt")

#reading the tab delimited text file 
#The argument fill is logical. If TRUE then in case the rows have unequal length, blank fields are implicitly added.
read.delim(file="foo.txt", header = TRUE, sep = "\t", fill = TRUE)