楼主: ntwd87
27517 13

[问答] 请问如何循环生成变量名? [推广有奖]

  • 0关注
  • 0粉丝

本科生

67%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
996 点
帖子
64
精华
0
在线时间
93 小时
注册时间
2015-1-8
最后登录
2020-12-27

楼主
ntwd87 发表于 2015-1-8 18:59:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有个程序,需要在循环中生成变量名的序列。v1 <- nc$var[[1]]
data1 <- get.var.ncdf( nc, varid=v1 )
v2 <- nc$var[[2]]
data2 <- get.var.ncdf( nc, varid=v2 )
......
差不多就是这样50个,然后做data=data1+data2+......data50
请问怎么循环完成?
二维码

扫码加我 拉你入群

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

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

关键词:生成变量 如何

沙发
qoiqpwqr 发表于 2015-1-8 19:19:42
这个不需要生成变量名,用个循环加起来就行了

藤椅
qoiqpwqr 发表于 2015-1-8 19:22:41
如果你想循环生成变量名用

  1. total <- 0
  2. for (i in 1:50) {
  3.   assign(paste("data", i, sep = ""), get.var.ncdf(nc, varid = nc$var[[i]]))
  4.   total <- total + get(paste("data", i, sep = ""))
  5. }
复制代码
已有 1 人评分学术水平 收起 理由
李会超 + 2 精彩帖子

总评分: 学术水平 + 2   查看全部评分

板凳
yywan0913 在职认证  发表于 2015-1-9 08:42:01
qoiqpwqr 发表于 2015-1-8 19:22
如果你想循环生成变量名用
最后可以用sum(unlist(mget(paste("data",1:50,sep="")))), 就不用每次循环算一遍了

报纸
ntwd87 发表于 2015-1-9 09:02:22
感谢楼上两位,我发现另外一个方法也可以
for (i in seq(1,2,1)){
  nam_i <- nc$var[[i]]
  data_i <- get.var.ncdf( nc, varid=nam_i )
  data <- data+data_i
}

地板
ntwd87 发表于 2015-1-9 09:07:48
yywan0913 发表于 2015-1-9 08:42
最后可以用sum(unlist(mget(paste("data",1:50,sep="")))), 就不用每次循环算一遍了
谢谢~学习了~

7
tiantanshu 发表于 2015-1-9 09:14:41
ntwd87 发表于 2015-1-9 09:07
谢谢~学习了~
这个get.var.ncdf是哪个包里的呢?我为什么运行不了这个函数呢?

8
ntwd87 发表于 2015-1-9 09:32:15
tiantanshu 发表于 2015-1-9 09:14
这个get.var.ncdf是哪个包里的呢?我为什么运行不了这个函数呢?
装netcdf的package,你需要用吗?我是读grib2数据要用到

9
ntwd87 发表于 2015-1-9 10:14:59
qoiqpwqr 发表于 2015-1-8 19:22
如果你想循环生成变量名用
请问我如果要批量打开一个文件夹中文件名中201208*的文件怎么打开?还有怎么批量做shell?

10
tiantanshu 发表于 2015-1-9 14:56:15
ntwd87 发表于 2015-1-9 09:32
装netcdf的package,你需要用吗?我是读grib2数据要用到
我是看到了,想了解下这个函数是做什么用的

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 09:19