提问人:KingCooper 提问时间:11/9/2023 最后编辑:moodymudskipperKingCooper 更新时间:11/9/2023 访问量:22
向 r-dataframe 添加具有相对频率的列
Adding a column with relative frequencys to a r-dataframe
问:
我在 R 中有一个数据帧,想为每个变量添加一个具有相对频率的列。 以下是我正在处理的示例数据帧:
df <- data.frame(
Ausprägung = c("Obs1", "Obs2", "Obs3", "Obs4", "Total"),
Anzahl = c(100, 100, 100, 100, 400)
)
我想添加一个具有相对频率的列,并有一个输出数据帧,如下所示
Ausprägung | 安扎尔 | 相关频率 |
---|---|---|
Obs1型 | 100 | 0.25 |
Obs2型 | 100 | 0.25 |
Obs3型 | 100 | 0.25 |
Obs4的 | 100 | 0.25 |
总 | 400 | - |
我尝试使用 prop.table() 函数,但卡住了,因为我想使用 dataframe,而 prop.table() 函数似乎只支持表对象。我发现了一些关于相对频率计算的其他问题,但似乎没有一个适合我的情况。
答:
1赞
moodymudskipper
11/9/2023
#1
这应该有效:
df <- data.frame(
Ausprägung = c("Obs1", "Obs2", "Obs3", "Obs4", "Total"),
Anzahl = c(100, 100, 100, 100, 400)
)
transform(df, rel.frequency = ifelse(Ausprägung == "Total", NA, Anzahl / sum(Anzahl[Ausprägung != "Total"])))
#> Ausprägung Anzahl rel.frequency
#> 1 Obs1 100 0.25
#> 2 Obs2 100 0.25
#> 3 Obs3 100 0.25
#> 4 Obs4 100 0.25
#> 5 Total 400 NA
创建于 2023-11-09 使用 reprex v2.0.2
评论