首页 > 解决方案 > 如何使数据框的某些部分百分比?

问题描述

这是我的名为 cat_data 的数据框

打印(cat_data)

Metrics                2016    2017    2018    
Number of Cats         100     120      150     
Number Leaving         32      40       65
Number Staying         68      80       85 
Percent of Leavers     .32     .33      .43
Percent of Stayers     .68     .67      .57 

我只想将行和 5 转换为带有百分比符号的百分比。

这是我想要的输出。

Metrics                2016    2017    2018    
Number of Cats         100     120      150     
Number Leaving         32      40       65
Number Staying         68      80       85 
Percent of Leavers     32%     33%      43%
Percent of Stayers     68%     67%      57% 

我试过这个,但我无法让它工作。

cat_data[4:5,2:4] <- paste0(cat_data[4:5,2:4] * 100,%)

谁能告诉我我需要修复什么?谢谢你。

标签: rdplyrtidy

解决方案


这也应该有效

编辑

粘贴函数需要一个向量作为输入,但您的输入cat_data[4:5,2:4]是一个数据框。

apply函数将数组作为输入并输出一个向量。

cat_data[4:5,2:4] <- apply(cat_data[4:5,2:4]*100, 2, function(x) paste0(x, "%"))

您将数据框的区域乘以 100。这将是您在apply函数中的数组输入。通过指示margin = 2向量化是按列执行的。然后你提供应用于向量的函数,在这种情况下是paste具有你想要的%字符的函数。


推荐阅读