楼主: godrats
15453 11

[问答] data.frame无法更改列名 [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0.0004
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
485 点
帖子
22
精华
0
在线时间
56 小时
注册时间
2015-4-21
最后登录
2016-10-17

楼主
godrats 发表于 2015-6-12 15:21:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据是xlsx格式,读入以后,删除掉第1,2,3,4,6行,代码如下library(xlsx);
test<-read.xlsx("C:\\Work\\Test_data.xlsx",1);
test<-test[c(-(1:4),-6),];

然后得到的test的第一行其实应该是列名,我想把test这个data.frame的列名改成第一行的值,但是怎么都改不过来,Console里代码如下:
> colnames(test[1])
[1] "Summary"
> colnames(test[1])<-"Date"
> colnames(test[1])
[1] "Summary"

求指点~谢谢

数据见附件:
Test_data.xlsx (11.27 KB)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Frame Fram Data FRA RAM library

沙发
ryoeng 在职认证  发表于 2015-6-12 18:27:07
提示: 作者被禁止或删除 内容自动屏蔽

藤椅
g4730380 发表于 2015-6-12 20:17:30
  1. colnames(test[1])
复制代码

的意思是 先取 test 的第一列,得到一个新的 list;这个新的 list 跟原来 data frame 里的第一列并没有关联。所以,你原本这句:
  1. colnames(test[1])<-"Date"
复制代码

实际上是在更改这个新的 list 的名字。

正确的写法是:
  1. colnames(test)[1]<-"Date"
复制代码

板凳
godrats 发表于 2015-6-13 01:03:05
g4730380 发表于 2015-6-12 20:17
的意思是 先取 test 的第一列,得到一个新的 list;这个新的 list 跟原来 data frame 里的第一列并没有关 ...
哦~~原来这样啊,学习了
有没有办法一下把所有列名直接赋值成第一行数据呢?

报纸
godrats 发表于 2015-6-13 01:09:19
ryoeng 发表于 2015-6-12 18:27
readxl, RODBC, xlsx, connectXL... 太多程序包了,数也数不清,不过openxlsx程序包最实用,甚至可以修改任 ...
都没用过。。我试试,学习了~谢谢~~

地板
g4730380 发表于 2015-6-13 04:08:15
批量重命名 header:
  1. colnames(test) <- c("h1", "h2", ...)
复制代码


具体到你的问题,其实 xlsx 这个包里有个 startRow 选项可以用:
  1. test <- read.xlsx("C:\\Work\\Test_data.xlsx", 1, startRow = 7, header = TRUE);
  2. test <- test[-c(1), -6]
复制代码

7
godrats 发表于 2015-6-14 13:37:50
g4730380 发表于 2015-6-13 04:08
批量重命名 header:
哦。。。学习,非常感谢

8
xupeng2015 发表于 2016-5-31 19:19:33
g4730380 发表于 2015-6-12 20:17
的意思是 先取 test 的第一列,得到一个新的 list;这个新的 list 跟原来 data frame 里的第一列并没有关 ...
解释的太好了

9
niony 发表于 2019-2-17 20:30:06
g4730380 发表于 2015-6-12 20:17
的意思是 先取 test 的第一列,得到一个新的 list;这个新的 list 跟原来 data frame 里的第一列并没有关 ...
高手,很实用

10
how_ll 发表于 2019-11-22 22:44:40
ryoeng 发表于 2015-6-12 18:27
readxl, RODBC, xlsx, connectXL... 太多程序包了,数也数不清,不过openxlsx程序包最实用,甚至可以修改任 ...
博士您好!R语言中怎样将nc格式的气象数据(按照经纬度和每个经纬度交叉点所对应的变量组成的),按照时间批量生成csv格式的文件呢?例子csv格式的文件中time的单位是:“hours since 1800-01-01 00:00",我在这个例子中只选用了数据的第一个时间点即1297320(即1948年1月1日0时),数据的时间是每日4个6小时数据,也就是说下一个数据时1948年1月1日6时。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 08:05