我有以下數據框:自動計算彙總統計的數據幀和創建新表
col1 <- c("avi","chi","chi","bov","fox","bov","fox","avi","bov",
"chi","avi","chi","chi","bov","bov","fox","avi","bov","chi")
col2 <- c("low","med","high","high","low","low","med","med","med","high",
"low","low","high","high","med","med","low","low","med")
col3 <- c(0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,1,0,1,0)
test_data <- cbind(col1, col2, col3)
test_data <- as.data.frame(test_data)
,我想是這樣的表落得(值是隨機的):
Species Pop.density %Resistance CI_low CI_high Total samples
avi low 2.0 1.2 2.2 30
avi med 0 0 0.5 20
avi high 3.5 2.9 4.2 10
chi low 0.5 0.3 0.7 20
chi med 2.0 1.9 2.1 150
chi high 6.5 6.2 6.6 175
%阻力欄基於上面的col3,其中1 =耐,0 =不耐。我曾嘗試以下:
library(dplyr)
test_data<-test_data %>%
count(col1,col2,col3) %>%
group_by(col1, col2) %>%
mutate(perc_res = prop.table(n)*100)
我想這一點,它似乎幾乎做的伎倆,因爲我得到的總的1和0的COL3的百分比,在col1和2每一個值,但總樣本是錯誤的,因爲我指望所有的三列,當正確的計數將是唯一的col1和2
對於置信區間我會用以下內容:
binom.test(resistant samples,total samples)$conf.int*100
但是我不知道怎麼樣與其他人一起實施。 有沒有簡單快捷的方法來做到這一點?
我建議使用group_by然後使用匯總功能。 – Jul
使用'data.frame(col1,col2,col3)',而不是'cbind',這會迫使每列在這裏串起來。 – Frank
您的示例數據沒有(「avi」,「high」)對。您是否希望該行反正出現(使用NAs和零採樣數)? – Frank