[問題] 擷取data.frame中的特定資料
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
各位大大好,小弟在做coursera的作業時有一題要求把
一個給定的data.frame(叫做airquality)中某兩個向
量(Ozone和Temp)分別大於31和90時的第三個向量Solar.R
的平均值是多少?
後來我有發現可以用:
attach(data)
sub <- subset(data,Ozone > 31 & Temp > 90)
summary(sub)
的方式求出Solar.R在符合上述兩個條件之下的平均值。
但一開始只是直覺地想要用for loop暴力算,但沒成功,
想問板上是否可以用迴圈的方式算出來?以下是自己嘗試
的程式碼,附帶一提:
data[,1]是Ozone
data[,2]是Solar.R
data[,4]是Temp
[程式範例]:
add <- 0
count <- 0
for(i in 1:153){
if(data[i,1]>31 & data[i,4]>90)
add <- add + data[i,2] #把符合條件的Temp值累加
count <- count + 1
}
mean <- add/count
這裏遇到的問題是data[,1]含有NA值,所以我想把有NA值
的資料刪掉,於是先跑這個for loop:
for(i in 1:153){
if(is.na(hw2[i,1]))
hw2[i,] <- NULL
}
結果:
錯誤在`[<-.data.frame`(`*tmp*`, i, , value = NULL) :
replacement has 0 items, need 6
不知道是類型不一樣,NULL不能隨便套用還是其他原因,
總之先感謝各位大大把這篇看完QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.80.95
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1421144272.A.DAB.html
推
01/13 18:56, , 1F
01/13 18:56, 1F
推
01/13 19:03, , 2F
01/13 19:03, 2F
推
01/13 19:31, , 3F
01/13 19:31, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章