作者melodyheyhey (rebecca_caca)
看板R_Language
标题[问题] dataframe使用ifelse将符合条件的print出
时间Tue Dec 19 00:45:20 2017
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
想只用ifelse函式将data frame 里符合资料的印出
[程式范例]:
张贴能够重现错误的程式码,可以帮助版友更快的帮你解决问题
house = read.csv('D:/house.csv',header=TRUE,stringsAsFactors=FALSE)
head(house)
str(house)
a=house$price
if(a>5000){
print(a)
}
[环境叙述]:
R-3.4.2
执行结果如下:
house = read.csv('D:/house.csv',header=TRUE,stringsAsFactors=FALSE)
> head(house)
price unit_price measure parking parking_price floor floor2 nfloor area
1 545 35.86 15.20 0 0.0 5 25 5 A4
2 1568 41.42 37.86 0 0.0 6 36 12 A4
3 2100 34.80 53.20 1 16.9 2 4 11 A5
4 926 28.10 33.00 0 0.0 5 25 5 A11
5 1050 35.50 29.60 0 0.0 2 4 6 A11
6 750 42.47 17.66 0 0.0 2 4 3 A9
room hall bath house_age date house_type season
1 1 2 1 26.9 9903 公寓 Q1
2 3 2 2 5.9 9907 大楼 Q3
3 3 2 2 9.3 9907 大楼 Q3
4 3 2 2 26.2 9812 公寓 Q4
5 3 2 2 10.5 9902 大楼 Q1
6 2 2 1 36.7 9906 公寓 Q2
> str(house)
'data.frame': 2931 obs. of 16 variables:
$ price : int 545 1568 2100 926 1050 750 1180 1416 4110 1295 ...
$ unit_price : num 35.9 41.4 34.8 28.1 35.5 ...
$ measure : num 15.2 37.9 53.2 33 29.6 ...
$ parking : int 0 0 1 0 0 0 0 0 1 0 ...
$ parking_price: num 0 0 16.9 0 0 ...
$ floor : int 5 6 2 5 2 2 2 14 9 3 ...
$ floor2 : int 25 36 4 25 4 4 4 196 81 9 ...
$ nfloor : int 5 12 11 5 6 3 3 16 14 5 ...
$ area : chr "A4" "A4" "A5" "A11" ...
$ room : int 1 3 3 3 3 2 2 3 2 2 ...
$ hall : int 2 2 2 2 2 2 2 2 2 2 ...
$ bath : num 1 2 2 2 2 1 1 2 2 1 ...
$ house_age : num 26.9 5.9 9.3 26.2 10.5 36.7 35.5 11.2 3.9 26.5 ...
$ date : int 9903 9907 9907 9812 9902 9906 9907 9905 9907 9811 ...
$ house_type : chr "公寓" "大楼" "大楼" "公寓" ...
$ season : chr "Q1 " "Q3 " "Q3 " "Q4 " ...
> a=house$price
> if(a>5000){
+ print(a)
+ }
Warning message:
In if (a > 5000) { : 条件的长度 > 1,因此只能用其第一元素
>
谢谢大家~~
[关键字]:
选择性,也许未来有用
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.100.78.42
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1513615523.A.845.html
※ 编辑: melodyheyhey (223.136.63.202), 12/19/2017 00:50:45
1F:→ cywhale: print(a[a>5000]) 12/19 01:23
2F:→ andrew43: 像是 house[house$price > 5000, ] 12/19 09:05
3F:→ melodyheyhey: 谢谢你们~可是有要求要用ifelse条件式印出的话要 12/19 09:21
4F:→ melodyheyhey: 怎麽写呢? 12/19 09:21
5F:→ HumuHumu: sapply(a,function(x){ if(x>5000) print (x) }) 12/19 10:16
6F:→ x88776544pc: ifelse 跟 print 感觉不太搭 @@ 12/19 10:39
7F:→ x88776544pc: print(ifelse(a>5000,a,""),quote=F) 12/19 10:40
8F:→ x88776544pc: print.table(na.omit(ifelse(a>5000,a,NA))) 12/19 10:40