How to convert a row of data to percent? R
本问题已经有最佳答案,请猛点这里访问。
这是我的数据集。
1 2 3 4 5 6 | print(data) Month.2020 Jan Feb Mar Apr May Jun Jul 1 1st of Month Count 4248 4413 4534 4634 4621 4424 3323 2 Monthly Difference NA +165 +121 +100 -13 -197 -1101 3 Monthly Percent Change NA 0.038 0.027 0.022 -0.002 -0.043 -0.249 |
我希望输出为
1 2 3 4 | Month.2020 Jan Feb Mar Apr May Jun Jul 1 1st of Month Count 4248 4413 4534 4634 4621 4424 3323 2 Monthly Difference NA +165 +121 +100 -13 -197 -1101 3 Monthly Percent Change NA 3.8% 2.7% 2.2% -0.2% -4.3% -24.9% |
我尝试了以下操作,但没有成功
1 | data[3,2:8] <- apply(data[5:7,2:5]*100, 2, function(x) paste0(x,"%")) |
然后我尝试指定每个" Cell",但也没有起作用
1 | data[3,3] <- paste("3.8%") |
尝试一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | df[3,-c(1,2)] <- paste0(100*df[3,-c(1,2)],'%') Month.2020 Jan Feb Mar Apr May Jun Jul 1 1stofMonthCount 4248 4413 4534 4634 4621 4424 3323 2 MonthlyDifference NA 165 121 100 -13 -197 -1101 3 MonthlyPercentChange NA 3.8% 2.7% 2.2% -0.2% -4.3% -24.9% #Data df <- structure(list(Month.2020 = c("1stofMonthCount","MonthlyDifference", "MonthlyPercentChange"), Jan = c(4248L, NA, NA), Feb = c(4413, 165, 0.038), Mar = c(4534, 121, 0.027), Apr = c(4634, 100, 0.022 ), May = c(4621, -13, -0.002), Jun = c(4424, -197, -0.043), Jul = c(3323, -1101, -0.249)), row.names = c(NA, -3L), class ="data.frame") |
您可以使用:
1 | df[3, 2:8] <- sapply(df[3, 2:8], function(x) scales::percent(x, big.mark = 1, accuracy = 0.1)) |