我有下面的数据框,其中包含一个NA值,我想创建一个名为Percentages的新列,所以df $百分比,这样它就可以作为值列中每个数字的百分比除以总数
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 5 0.05
6 UK Hats NA NA (or 0 or NULL)
7 Total 100 1.00
有关如何创建该百分比列的任何想法?
我尝试了所有不同的东西,但没有解决方案!
感谢任何帮助!
答案 0 :(得分:0)
试试这个解决方案:
df$percentage<-c(df[1:nrow(df)-1,"Value"]/sum(df[1:nrow(df)-1,"Value"],na.rm = T),1)
df
Country Value percentage
1 UK 50 0.50
2 UK 20 0.20
3 UK 15 0.15
4 UK 10 0.10
5 UK 5 0.05
6 UK NA NA
7 Total 100 1.00
我的意见:
df<-data.frame(Country=c("UK","UK","UK","UK","UK","UK","Total"),Value=c(50,20,15,10,5,NA,100))
注意:使用评论
中的信息进行了更新答案 1 :(得分:0)
根据评论中的说法,我会给你一个扩展的解决方案(我的类似于@Terru_theTerror)。
在R中翻译,给出了。
total <- df$Value[nrow(df)] # or total <- sum(df$Value[1:(nrow(df)-1)], na.rm = T)
df$percentage <- df$Value/total