作者criky (立业成家)
看板R_Language
标题[问题] 条件筛选资料
时间Thu Nov 13 11:20:27 2014
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
基本学习
[程式范例]:
我有参考此网页的写法,不过也出现错误
https://sites.google.com/site/rlearningsite/manage/manage4
在coursera学习R,之前有自己找文件看,
第一周的考试最後3题不太会,都是筛选资料後计算的
资料如下
https://www.sendspace.com/file/vtlml8
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
第17题是要选 Ozne>31和 Temp>90的资料,再做计算
我打程式码如下:
hw1.Q18<-hw1[Ozone>31, Temp>90]
错误讯息如下:
Error in `[.data.frame`(hw1, Ozone > 31, Temp > 90) :
object 'Temp' not found
要怎麽修改才能筛选出我要的资料呢?
[关键字]:
筛选
选择性,也许未来有用
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.127.235.145
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/R_Language/M.1415848834.A.746.html
1F:→ rockken: 你有打 attach(hw1) ?? 11/13 12:23
2F:→ andrew43: hw1.Q18 <- subset(hw1, Ozone > 31 & Temp > 90) 11/13 12:29
3F:→ andrew43: 这样可能比较好懂。 11/13 12:30
4F:→ criky: 谢谢andrew43, 我好像也打过类似的code orz 结果不行 11/13 14:16
5F:→ criky: 空格有关系吗? 11/13 14:16
6F:→ criky: 选第1栏的资料是 hw1[,1] , 可以用栏位名称 Ozone写吗? 11/13 14:31
7F:→ criky: 请教rockken板友,若有汇入资料,但没打attach会不一样吗? 11/13 14:40
8F:推 bxxl: 要attch才能直接使用column名当变数,不然就要用xxx$yyy这样 11/13 17:18
9F:推 obarisk: with比较好,attach在变数多时... 11/13 19:34
10F:推 Edster: # 使用栏位名称呼叫. 适用 data.frame & matrix 11/13 21:54
11F:→ Edster: x = data.frame(x1 = c(1:10,NA), x2 = c(NA,1:10)) 11/13 21:55
12F:→ Edster: y = x[,"x1"] > 5 & x[,"x2"] > 3 11/13 21:55
13F:→ Edster: x[y & !is.na(y),] 11/13 21:55
14F:→ Edster: 你的例子里面有 NA, 所以最後筛选的时候, 要用 is.na 11/13 21:56
15F:→ Edster: 可以使用栏位名称呼叫该栏数列, 这没问题. 11/13 21:58
16F:→ Edster: 哎呀, 太久没用 subset. 果然还是andrew版友厉害. 11/13 22:00
17F:→ Edster: 但我有问题. 因为我平常习惯让需要呼叫的栏位可自由设定. 11/13 22:02
18F:→ Edster: 例如 x[,"x1"] 如此我可以在写 function 的时候. 11/13 22:02
19F:→ Edster: 利用变数替代 "x1". 但使用 subset 就不行了. 11/13 22:03
20F:→ Edster: 比如 subset(x, "x1" > 5) 跟 subset(x, x1 >5) 11/13 22:06
21F:推 Edster: 就不一样.. 11/13 22:11
22F:→ criky: 谢谢各位回应,我有用 is.na作答~ 希望愈来愈上手 11/13 22:31
24F:→ Wush978: For Edster最後面关於subset和x1的问题的解答 11/14 00:27
25F:→ gsuper: Q18<-hw1[hwl[,"Ozone"]>31 & hwl[,"Temp"]>90,] 11/14 00:35