楼主: 千车麦穗
185 15

[问答] For 循环——批量对数据框中的变量进行重命名 [推广有奖]

  • 3关注
  • 0粉丝

大专生

1%

还不是VIP/贵宾

-

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

千车麦穗 发表于 2019-7-8 10:28:55 |显示全部楼层
本帖最后由 千车麦穗 于 2019-7-10 15:45 编辑

各位老师好,
      我将源数据处理后,生成了一些数据框文件AR_data,NR_data,All_data,每个数据框中的变量基本一致,我想用for循环将这些变量批量修改掉,请问下怎么弄呢,十分感谢。ps:我知道自己的代码写的不对,c('AR_data','NR_data','All_data')中进入for循环的是字符串,而不是文件,可怎能改呢
  1. for(i in c('AR_data','NR_data','All_data')){
  2.   # i<-rename(i,c(d13C_fn1="Md13C",d15N_fn1="Md15N",
  3.   #               d13C_fn2="sd_13C",d15N_fn2="sd_15N",
  4.   #               d13C_fn3="max_13C",d15N_fn3="Max_15N",
  5.   #               d13C_fn4="min_13C",d15N_fn4="Min_15N"))
复制代码


变量虫命名.png



stata SPSS
千车麦穗 发表于 2019-7-10 15:43:54 |显示全部楼层
各位老师,拜托了……
给个思路也行啊,不胜感激
回复

使用道具 举报

5752 发表于 2019-7-10 16:19:38 |显示全部楼层
没看明白,你说的详细些
回复

使用道具 举报

千车麦穗 发表于 2019-7-11 07:48:24 |显示全部楼层
5752 发表于 2019-7-10 16:19
没看明白,你说的详细些
老师,您好。是这样,新生成的三个数据框'AR_data','NR_data','All_data',里面的变量名称基本是相同的,我想把它们变量名称用for循环批量修改一下,因为一个一个的修改有点麻烦 360截图16690803312942.png

回复

使用道具 举报

5752 发表于 2019-7-11 08:49:23 |显示全部楼层
for(i in c('AR_data','NR_data','All_data')){
    df=read.csv(paste0(i,".csv"))
  # df<-rename(df,c(d13C_fn1="Md13C",d15N_fn1="Md15N",
  #               d13C_fn2="sd_13C",d15N_fn2="sd_15N",
  #               d13C_fn3="max_13C",d15N_fn3="Max_15N",
  #               d13C_fn4="min_13C",d15N_fn4="Min_15N"))
回复

使用道具 举报

千车麦穗 发表于 2019-7-11 09:16:57 |显示全部楼层
5752 发表于 2019-7-11 08:49
for(i in c('AR_data','NR_data','All_data')){
    df=read.csv(paste0(i,".csv"))
  # df
老师,这三个数据框还没保存成.csv文件,所以显示“”cannot open file 'AR_data.csv': No such file or directory”。老师,请您看下图。 111png.png

回复

使用道具 举报

nieqiang110 发表于 2019-7-11 10:53:56 |显示全部楼层
千车麦穗 发表于 2019-7-11 09:16
老师,这三个数据框还没保存成.csv文件,所以显示“”cannot open file 'AR_data.csv': No such file or  ...
把数据打包传上来,这样好交流
回复

使用道具 举报

zhou1_20 发表于 2019-7-11 12:53:06 |显示全部楼层
不要直接抛个问题出来,最好自己先编写,哪怕花费两周的时间也是值得的,要不然编程思维永远也学不会。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 观点有启发

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

千车麦穗 发表于 2019-7-11 14:02:46 |显示全部楼层
zhou1_20 发表于 2019-7-11 12:53
不要直接抛个问题出来,最好自己先编写,哪怕花费两周的时间也是值得的,要不然编程思维永远也学不会。
恩恩,好的,老师,我再研究研究
回复

使用道具 举报

千车麦穗 发表于 2019-7-11 17:21:38 |显示全部楼层
本帖最后由 千车麦穗 于 2019-7-11 17:26 编辑
nieqiang110 发表于 2019-7-11 10:53
把数据打包传上来,这样好交流
老师,您好!.csv 文件上传不了,我把它压缩了一下,谢谢您。 data.zip (1.11 KB) code.zip (598 Bytes)
  1. #20190711 批量修改多个数据框中的变量名称
  2. rm(list = ls())
  3. data<-read.table('C:\\Users\\video\\Desktop\\data.csv',sep = ',',header = T)
  4. library(dplyr)
  5. AR_data<-data%>%filter(Area=="AR")%>%group_by(Trophicgroup)%>%
  6.   summarize_each(list(mean,sd,max,min), d13C, d15N)
  7. NR_data<-data%>%filter(Area=="NR")%>%group_by(Trophicgroup)%>%
  8.   summarize_each(list(mean,sd,max,min), d13C, d15N)
  9. All_data<-data%>%group_by(Area,Trophicgroup)%>%
  10.   summarise_each(list(mean,sd,max,min),d13C,d15N)
  11. #批量修改变量名称(没成功)
  12. for(i in list(AR_data,NR_data,All_data)){
  13.   i<-rename(i,c(d13C_fn1="Md13C",d15N_fn1="Md15N",
  14.                 d13C_fn2="sd_13C",d15N_fn2="sd_15N",
  15.                 d13C_fn3="max_13C",d15N_fn3="Max_15N",
  16.                 d13C_fn4="min_13C",d15N_fn4="Min_15N"))
  17. }
  18. ################想达到的效果#######
  19. AR_sumy<-rename(AR_data,c(d13C_fn1="Md13C",d15N_fn1="Md15N",
复制代码


data.xlsx

15.29 KB

回复

使用道具 举报

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

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-7-22 04:02