Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R用行中的名称替换标题_R_Header_Dataframe - Fatal编程技术网

R用行中的名称替换标题

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

我想用第一行中的标题替换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     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此解决方案无需重新读取数据集即可工作!