基于总百分比计算R数据帧中的百分比?
我现在有一个数据框,看起来像这样 编辑新数据帧的新更新基于总百分比计算R数据帧中的百分比?,r,dataframe,percentage,R,Dataframe,Percentage,我现在有一个数据框,看起来像这样 编辑新数据帧的新更新 Country Information Value UK Cars 50 UK Sheep 20 UK Cats 15 UK Dogs 10 UK Shoes 3 UK Hats 2
Country Information Value
UK Cars 50
UK Sheep 20
UK Cats 15
UK Dogs 10
UK Shoes 3
UK Hats 2
Total 100
Country列重复6次,最后一行称为Total,信息只是随机信息,值是数字,它们的总和为100,从最高到最低按降序排列
我想在R中找到一种方法来添加一个新列(df$Percentage),该列根据列值中的总百分比计算每行的百分比
例如,新列将具有
Country Information Value Percentage
UK Cars 50 0.50 (or can be 50%)
UK Sheep 20 0.20
UK Cats 15 0.15
UK Dogs 10 0.10
UK Shoes 3 0.03
UK Hats 2 0.02
Total 100 1.00 (or nothing here)
以此类推,到达数据帧的末尾,其中TOTAL要么为空(假设百分比已停止,要么等于1)
我对R相当陌生,因此非常感谢您的帮助
谢谢你嗨,谢谢你的帮助,但我仍然没有得到正确的结果,有没有想过为什么?它目前说替换长度比原始长度短。你能给我们一个测试数据集,例如
dput(df)
并复制/粘贴此处的结果编辑了原始帖子,请查看新的数据框谢谢,如果您按照我之前的评论为我们提供一个可复制的数据集会更容易。您好,我已经添加了我正在使用的实际数据框,上面是我正在使用的真实数据框,谢谢youTrydf$
df$percentage <- df$Value/(sum(df$Value)/2)
#results
Country Information Value percentage
1 UK Cars 50 0.50
2 UK Sheep 20 0.20
3 UK Cats 15 0.15
4 UK Dogs 10 0.10
5 UK Shoes 3 0.03
6 UK Hats 2 0.02
7 Total 100 1.00
structure(list(Country = c("UK", "UK", "UK", "UK", "UK", "UK",
"Total"), Information = c("Cars", "Sheep", "Cats", "Dogs", "Shoes",
"Hats", ""), Value = c(50, 20, 15, 10, 3, 2, 100)), .Names = c("Country",
"Information", "Value"), class = "data.frame", row.names = c(NA,
-7L))