我能够生成3D频率表,但我很难与他们合作以获取我想要的信息。什么是解决这个问题的最佳方法?
一个名为选票的数据框,其中包含member
,vote_time
和vote
列,所有字符串。投票列中的可能值为Yes,No,Abstain,Present和Absent。 member
和vote_time
值的每个组合只有一行。 vote_times有点随机,因为大多数日期没有投票,有些有一个,有些有几个票。
包含member
,vote_date
和absent_ratio
列的数据框。 absent_ratio
列会显示给定成员在缺席而不是是或否等时输入的选票百分比等。
在原始数据框中添加vote_date
列非常简单。
ballots$vote_date <- as.Date(ballots$vote_time)
我尝试过使用内置的table
函数和count
包中的plyr
函数。他们能够给出给定成员/日期组合的缺席选票的号,但我不知道如何将其变成比率。
library(plyr)
daily_vote_count <- count(ballots, c('vote_date', 'name_en'))
daily_count_by_vote <- count(ballots, c('vote_date', 'vote', 'name_en'))
daily_absense_rate <- subset(daily_count_by_vote,
name_en == daily_vote_count$name_en &
vote_date == daily_vote_count$vote_date &
vote == "Absent"
)$freq / daily_vote_count # DOESN'T WORK
警告指出我正在处理不同长度的物体,但我不确定如何改变我的方法。感谢你给我的任何提示。
由于有人指出这很难在没有任何数据的情况下提出建议,所以这是使用mtcars
的同等问题。 适用于气缸和气缸的每个组合齿轮数,有多少百分比的汽车燃油效率超过每加仑20英里?
使用此命令,我可以计算每组中的汽车数量。
table(mtcars$mpg>20, mtcars$cyl, mtcars$gear)
我无法弄清楚如何计算正确的百分比。每个TRUE
/ FALSE
对cyl
+ gear
的比例应该增加到100%。但是prop.table()似乎没有返回我想要的东西。
prop.table(table(mtcars$mpg>20, mtcars$cyl, mtcars$gear)) # No
prop.table(table(mtcars$mpg>20, mtcars$cyl, mtcars$gear),1) # Nope
prop.table(table(mtcars$mpg>20, mtcars$cyl, mtcars$gear),2) # Still wrong
我也尝试重新安排table()
功能中的参数,但我还没有找到正确的答案。
答案 0 :(得分:2)
此:
ansible_user: Administrator
ansible_password: SecretPasswordGoesHere
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
为您提供每个组合汽缸/齿轮的汽车总数。这样:
with(mtcars, tapply(mpg>19, list(cyl=cyl,gear=gear), length))
为您提供每个cyl / gear组合with(mtcars, tapply(mpg>19, list(cyl=cyl,gear=gear), sum))
的汽车数量。因此,这个:
mpg>19
为您提供燃料效率大于或等于每加仑20英里的汽车的单元百分比。
答案 1 :(得分:1)
你非常接近,但你需要总计超过2个边距。我正在重新安排你的例子,所以“投票”就像你原来的问题一样:
> tab <- xtabs(~cyl+gear+I(mpg>20), mtcars)
> prop.table(tab, 1:2)
, , I(mpg > 20) = FALSE
gear
cyl 3 4 5
4 0.0 0.0 0.0
6 0.5 0.5 1.0
8 1.0 1.0
, , I(mpg > 20) = TRUE
gear
cyl 3 4 5
4 1.0 1.0 1.0
6 0.5 0.5 0.0
8 0.0 0.0
> prop.table(tab, 1:2)[ , , 2] # Proportion TRUE for each combo
gear
cyl 3 4 5
4 1.0 1.0 1
6 0.5 0.5 0
8 0.0 NaN 0
所有4缸汽车都超过20mpg而没有8缸汽车。获取数据框:
> as.data.frame.table(prop.table(tab, 1:2)[ , , 2])
cyl gear Freq
1 4 3 1.0
2 6 3 0.5
3 8 3 0.0
4 4 4 1.0
5 6 4 0.5
6 8 4 NaN
7 4 5 1.0
8 6 5 0.0
9 8 5 0.0