楼主: ELIANE!
11523 11

[问答] 请教高手指点R报错,如何定义变量? [推广有奖]

  • 2关注
  • 1粉丝

大专生

55%

还不是VIP/贵宾

-

威望
0
论坛币
21 个
通用积分
29.3027
学术水平
2 点
热心指数
3 点
信用等级
1 点
经验
113 点
帖子
47
精华
0
在线时间
53 小时
注册时间
2011-11-29
最后登录
2013-9-10

楼主
ELIANE! 发表于 2011-12-14 13:52:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
下面代码在运行的时候说找不到prob2,是不是应该事先定义,但不不知道如何定义?
prob1<-scan()
1 2 50 3.2
1 3 45 3.5
1 4 40 2.8
2 4 50 3.5
2 5 46 3.6
2 7 48 3.2
3 8 51 4.6
3 9 5  5.2
3 10 48 5.9

dim(prob1)<-c(4,9)
prob1<-t(prob1)
colnames(prob1)<-c("id","time","wt","dv")
prob1
prob1<-as.data.frame(prob1)
mindv<-aggregate(x=prob1[,c("dv")],by=list(prob1$id),FUN=min)
mindv

i<-numeric()
for(i in 1:length(mindv$x)){
j<-which(prob1$dv==mindv$x[i])
prob2[i,]<-prob1[j,]
}
二维码

扫码加我 拉你入群

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

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

关键词:定义变量 请教高手 高手指点 Rob 不知道 如何

沙发
cennafie 发表于 2011-12-14 13:54:16
我只会定义excel

藤椅
zippo414 发表于 2011-12-15 00:37:38
prob2需要先定义,因为第一次出现R不知道prob2[i,]是什么,你得先告诉R,prob2是个矩阵,看程序的意思,prob2应该和prob1是相同维度的矩阵,你的prob1是9*4的吧?那就把prob2也定义成9*4的吧。
另外i<-numeric()这句话没有用,可以去掉。
已有 1 人评分热心指数 收起 理由
ELIANE! + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

板凳
qoiqpwqr 发表于 2011-12-15 04:55:49
prob2 <- NULL
for(i in 1:length(mindv$x)){
j<-which(prob1$dv==mindv$x[i])
prob2 <- rbind(prob2, prob1[j,])
}
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 1 + 1 + 1 热心

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

报纸
trier2006 发表于 2011-12-15 08:35:00
做成外部文件,然后读取
最好的医生是自己,最好的药物是时间……

地板
ELIANE! 发表于 2011-12-15 09:48:17
zippo414 发表于 2011-12-15 00:37
prob2需要先定义,因为第一次出现R不知道prob2是什么,你得先告诉R,prob2是个矩阵,看程序的意思,prob2应 ...
首先谢谢你的热心帮助!但我的问题还没用解决。我要的结果是在prob1中提取出与mindv中dv相等的各行数据,即
id time wt  dv
1  1    2 50 3.2
3  1    4 40 2.8
6  2    7 48 3.2
7  3    8 51 4.6
我按你说法定义prob2<-matrix(,nrow=4,ncol=4),但是得不到我想要结果,可能是循环那出了问题,望指教!多谢!

7
zippo414 发表于 2011-12-15 13:40:06
ELIANE! 发表于 2011-12-15 09:48
首先谢谢你的热心帮助!但我的问题还没用解决。我要的结果是在prob1中提取出与mindv中dv相等的各行数据, ...
4楼版主的代码应该能解决问题了吧?

8
ELIANE! 发表于 2011-12-15 16:29:20
qoiqpwqr 发表于 2011-12-15 04:55
prob2
谢谢,但是我不明白prob2 <- rbind(prob2, prob1[j,])这样就得到了我想要的结果,为什么用rbind?能给我简单说说么?

9
qoiqpwqr 发表于 2011-12-15 23:21:02
ELIANE! 发表于 2011-12-15 16:29
谢谢,但是我不明白prob2
rbind就是把你的结果按照行一行行的累加起来,一般用在不知道最后的矩阵大小的情况下。
已有 1 人评分学术水平 热心指数 收起 理由
ELIANE! + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

10
ELIANE! 发表于 2011-12-16 11:34:38
qoiqpwqr 发表于 2011-12-15 23:21
rbind就是把你的结果按照行一行行的累加起来,一般用在不知道最后的矩阵大小的情况下。
就是说rbind是把两个矩阵按照行累加起来,但是其中一个是空的,其实就等于已知的那个矩阵,是么?

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

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