楼主: yijiaobani
2088 3

[问答] R语言中 如何实现不同因素在公式中循环,见代码 [推广有奖]

  • 4关注
  • 5粉丝

已卖:69份资源

博士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
191 个
通用积分
10.6711
学术水平
2 点
热心指数
8 点
信用等级
0 点
经验
5127 点
帖子
147
精华
0
在线时间
236 小时
注册时间
2015-5-18
最后登录
2020-10-28

楼主
yijiaobani 发表于 2017-4-12 18:30:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. # 数据
  2. head(npk)

  3. # 问题,我想写个循环,分别对N,P,K三个因素单独进行方差分析
  4. #类似
  5. aov(yield ~ N, data=npk)
  6. aov(yield ~ P, data=npk)
  7. aov(yield ~ K, data=npk)

  8. # 实施:
  9. c <- c("N","P","K")
  10. for (i in 1:3) print(c[i])
  11. # [1] "N"
  12. # [1] "P"
  13. # [1] "K"

  14. # 放到循环中
  15. for (i in 1:3) aov(yield ~ c[i] ,data=npk)
  16. # Error in model.frame.default(formula = yield ~ c[i], data = npk, drop.unused.levels = TRUE) :
  17. #   变数的长度不一样('c[i]')
复制代码
看到报错后,一脸懵逼相,求大师帮助!

二维码

扫码加我 拉你入群

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

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

关键词:如何实现 R语言 yield Data 方差分析

<img src="stati ...

沙发
Eric1028 发表于 2017-4-12 20:38:43
for (i in 1:3){
  aov(paste0('yield ~ ', c[i]), data=npk)
}

藤椅
yijiaobani 发表于 2017-4-13 09:01:27
Eric1028 发表于 2017-4-12 20:38
for (i in 1:3){
  aov(paste0('yield ~ ', c), data=npk)
}
谢谢你的回答,不过没有解决,报错如下:
  1. > for (i in 1:3){
  2. +     aov(paste0('yield ~ ', c[i]), data=npk)
  3. +   }
  4. Error: $ operator is invalid for atomic vectors
复制代码

板凳
stzhao 在职认证  发表于 2017-4-13 10:54:52
data(npk)
c <- c("N","P","K")
mod <- list(length = 3)
for (i in 1:3) {
    mod[[i]] <- aov(formula(paste0('yield ~ ', c[i])), data = npk)
}
mod
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
yijiaobani + 3 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 3  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

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