嗨,我有一个数据框,例如:
Col1 Col2 Col3
A 1 60
B 0 100
C 3 120
D 0 5
E 1 10
F 0 120
G 9 200
,我想交叉引用以下可能性:
Col2 >0 =0
Col3
>=50 3 2
<50 1 1
例如,我问在Col2> 0中有多少行在Col2> = 50中有多少行。
也许和dplyr在一起?
答案 0 :(得分:0)
数据:
df <- read.table(text= 'Col1 Col2 Col3
A 1 60
B 0 100
C 3 120
D 0 5
E 1 10
F 0 120
G 9 200', header = TRUE, stringsAsFactors = FALSE)
代码:
library('data.table')
setDT(df)
df[Col3 >= 50, Col3_50 := '>=50']
df[Col3 < 50, Col3_50 := '<50']
df[Col2 > 0, Col2_0 := '>0']
df[Col2 == 0, Col2_0 := '=0']
dcast(df, Col3_50 ~ Col2_0, fun.aggregate = length, value.var = "Col2_0")
# Col3_50 =0 >0
# 1: <50 1 1
# 2: >=50 2 3
答案 1 :(得分:0)
一个简单的解决方案是:
tab <- table(df$Col3 < 50, df$Col2 == 0)
tab
#>
#> FALSE TRUE
#> FALSE 3 2
#> TRUE 1 1
或者,添加名称:
rownames(tab) <- c("Col3 > 50", "Col3 < 50")
colnames(tab) <- c("Col2 > 0", "Col2 == 0")
tab
#>
#> Col2 > 0 Col2 == 0
#> Col3 > 50 3 2
#> Col3 < 50 1 1