簡體   English   中英

R:with()函數中的apply()函數

[英]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在評論中提到的, applyrowMeans與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM