我从csv文件导入了一个数据框。数据框看起来很难看。我想用第一次观察的值重命名所有变量并删除第一次观察。我的一位同事给了我一个关于这段代码的想法。
colnames(df) <- lapply(df[1, ], as.character)
df <- df[-1,]
上面的代码完美无缺,但我喜欢dplyr :-)有没有办法用管道和dplyr做同样的事情?
PS:如果我说些蠢话,请提前抱歉。我是R的初学者,这是我在Stack Overflow中的第一个问题。
答案 0 :(得分:1)
set.seed(1984)
require(dplyr)
## simulating a data frame
df <- data.frame(a = 1:10,
b = sample(LETTERS,10, replace = T),
c = sample(letters,10, replace = T),
stringsAsFactors = F)
head(df)
a b c
# 1 1 P y
# 2 2 A j
# 3 3 P o
# 4 4 W u
# 5 5 U a
# 6 6 E k
df %>%
filter(row.names(.) == 1) %>%
as.character(.) -> names(df)
df
# 1 P y
# 1 1 P y
# 2 2 A j
# 3 3 P o
# 4 4 W u
# 5 5 U a
# 6 6 E k
# 7 7 W o
# 8 8 P h
# 9 9 N b
# 10 10 O f