导入两行作为列名的文件

时间:2016-06-09 04:03:46

标签: r excel

我是R的新手,所以这个问题对大多数人来说可能太简单了。

我目前正在使用R从我的Excel文件导入值和数据。 但是前两行我想设置为我的列名。谁能建议我应该做些什么?对于例如col.names =&

enter image description here

我希望我的专栏名称是

NAMEA, PRODUCT1B, PRODUCT2C, PRODUCT3D等等。

*请不要告诉我在Excel中更改我的列名,因为有很多列。

提前致谢。

3 个答案:

答案 0 :(得分:2)

除了@Ronak提到的内容之外,这是一个端到端的解决方案。我会在没有标题的情况下使用read.csv()来为您提供数据框中的两个实际行。然后使用paste0()创建新列名,分配它们,并删除前两行。

# read in CSV file from Excel, using comma as a separator
input <- read.csv(file="path/to/excelFile.csv", sep=",", header=FALSE,
                  stringsAsFactors=FALSE)

# create new column names as a composite of the first two rows
new_names <- paste0(as.character(input[1,]), as.character(input[2,]))

names(input) <- new_names          # assign the new column names
input <- input[3:nrow(input), ]    # subset off the first two rows

答案 1 :(得分:1)

你可以尝试,

#pasting the first row with the column name and assigning them as column names
colnames(df) <- paste0(colnames(df), df[1, ])

如果您现在想要从数据框中删除第一行,则可以使用

df[-1, ]

其中df是您的数据框

答案 2 :(得分:1)

library(stringr)
a <- c("NAME", "PRODUCT1", "PRODUCT2", "PRODUCT3")
b <- c("A", "B", "C", "D")
str_c(a,b)#"NAMEA"     "PRODUCT1B" "PRODUCT2C" "PRODUCT3D"

然后,您可以使用str_c的输出作为列名,然后删除数据框的前两行。