[英]R: apply() function in with() function
假設一個數據集,其中有10位參與者填寫了x,y和z 3個項目的問卷。
ss <- data.frame(x=rnorm(10), y=rnorm(10), z=rnorm(10))
我想為每個人計算這些項目的平均值(個人平均值)。 我可以這樣輕松地做到這一點:
ss$personalmean <- rowMeans(ss[c("x", "y", "z")])
或者這樣:
ss$personalmean <- apply(ss[c("x", "y", "z")], 1, mean)
但是假設我希望能夠在with函數中做到這一點。 然后我遇到了問題。
這有效:
with(ss, (x+y+z)/3)
但這不是:
with(ss, rowMeans(c(x,y,z)))
with(ss, apply(c(x,y,z), 1, mean))
我不明白為什么。 這里的例子很簡單,但是總之,我想在with()
函數中with()
apply()
函數。
抱歉,如果有人在某個地方對這個問題發布了一個很好的答案,但是由於“ with”是一個非常通用的術語,因此谷歌搜索我正在尋找的內容並不容易。
正如@Frank在評論中提到的, apply
和rowMeans
與matrix / data.frame一起使用。 因此,如果我們要with
而不是c
一起使用,則cbind
會將其轉換為matrix
,
with(ss, rowMeans(cbind(x,y,z)))
with(ss, apply(cbind(x,y,z), 1, mean))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.