楼主: slivers
2727 6

[问答] 请问r语言里的for循环是否可以实现循环语句中变量名随循环变化? [推广有奖]

  • 0关注
  • 0粉丝

已卖:3份资源

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
21 个
通用积分
0.0979
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
172 点
帖子
5
精华
0
在线时间
34 小时
注册时间
2017-11-22
最后登录
2024-7-8

楼主
slivers 发表于 2022-5-24 14:13:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
例如data中有a1,a2,a3,b1,b2,b3几个变量,想要实现:新建变量:c1=a1+b1
c2=a2+b2
c3=a3+b3
是否可用循环语句运行?



二维码

扫码加我 拉你入群

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

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

关键词:for循环 循环语句 For R语言 for循环

本帖被以下文库推荐

沙发
s609078902 发表于 2022-5-24 16:34:36
可以,用 assign() 进行赋值

藤椅
llb_321 在职认证  发表于 2022-5-24 17:08:40
类似这样的,可用吗?
  1. d <- data.frame(
  2.   a1 = runif(10),
  3.   a2 = runif(10),
  4.   a3 = runif(10),
  5.   b1 = rnorm(10),
  6.   b2 = rnorm(10),
  7.   b3 = rnorm(10)
  8. )

  9. new <- as.data.frame(matrix(0,
  10.                             nrow = dim(d)[1],
  11.                             ncol = dim(d)[2] / 2))
  12. colnames(new) <- paste("c", 1:(dim(d)[2] / 2), sep = "")

  13. for (i in 1:(dim(d)[2] / 2)) {
  14.   new[paste("c", i, sep = "")] <-
  15.     d[paste("a", i, sep = "")] +
  16.     d[paste("b", i, sep = "")]
  17. }
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

板凳
slivers 发表于 2022-5-26 10:25:41
s609078902 发表于 2022-5-24 16:34
可以,用 assign() 进行赋值
用assign可以实现新建c1-c3变量,但如何循环将a1+b1 - a3+b3的值赋值给新变量呢?

报纸
slivers 发表于 2022-5-26 10:57:31
llb_321 发表于 2022-5-24 17:08
类似这样的,可用吗?
可以!昨天跟朋友讨论数据框里变量比较多的话感觉需要把a1-an,b1-bn挑出来新建一个数据框,然后用data[,i]代表变量,但用data[paste("a",i,sep="")]就不需要新建数据框了!
感谢!

地板
llb_321 在职认证  发表于 2022-5-26 19:27:06
slivers 发表于 2022-5-26 10:57
可以!昨天跟朋友讨论数据框里变量比较多的话感觉需要把a1-an,b1-bn挑出来新建一个数据框,然后用data[, ...
类似方法可用就好,只要变量有明确的规律。

7
abelus 发表于 2022-7-29 13:17:09
规律这么强的线性变换,还可以直接矩阵乘法搞定,不用搞循环
M_(N, 6) %*% T_(6, 6)就可以了
速度指不定贼快

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

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