R用行中的名称替换标题
我想用第一行中的标题替换data.frame的标题。 已使用read.xls()导入数据。不幸的是,无法再次读取原始文件R用行中的名称替换标题,r,header,dataframe,R,Header,Dataframe,我想用第一行中的标题替换data.frame的标题。 已使用read.xls()导入数据。不幸的是,无法再次读取原始文件 bad header here 1 new header2 here 2 58 3.222 50 3 25 10.000 40 4 5 0.847 152.5 5 15 1.633 98 结果应该如下所示: new header2 here 1 58 3.222
bad header here
1 new header2 here
2 58 3.222 50
3 25 10.000 40
4 5 0.847 152.5
5 15 1.633 98
结果应该如下所示:
new header2 here
1 58 3.222 50
2 25 10.000 40
3 5 0.847 152.5
4 15 1.633 98
df2 <- setNames(mydf[-1, ], mydf[1, ])
谢谢
马特假设您的
数据。帧
被称为“mydf”,您可以尝试以下方法:
new header2 here
1 58 3.222 50
2 25 10.000 40
3 5 0.847 152.5
4 15 1.633 98
df2 <- setNames(mydf[-1, ], mydf[1, ])
您可以按如下方式进行转换:
df2[] <- lapply(df2, function(x) type.convert(as.character(x)))
str(df2)
# 'data.frame': 4 obs. of 3 variables:
# $ new : int 58 25 5 15
# $ header2: num 3.222 10 0.847 1.633
# $ here : num 50 40 152 98
df2
# new header2 here
# 2 58 3.222 50.0
# 3 25 10.000 40.0
# 4 5 0.847 152.5
# 5 15 1.633 98.0
df2[]假设您的数据名为my.data.frame,只需将第1行指定给标题,然后删除第1行
#assign row 1 names to the header
names(my.data.frame) <- as.character(my.data.frame[1,])
#delete the first row
my.data.frame <- my.data.frame[2:nrow(my.data.frame),]
#为标题指定第1行名称
名称(my.data.frame),但OP明确表示他不再有权访问源文件。名称和as.character的组合正是我所需要的。谢谢@carl此解决方案无需重新读取数据集即可工作!