在R中的列百分比数据框中添加“%”

时间:2019-05-06 19:23:38

标签: r string dataframe dplyr

我有一个百分比数据框。我想在每个单元格的末尾添加一个“%”,以便可以正确导出/显示它们。看起来像

    c1   c2
r1  2.1  3.5
r2  3.4  4.5

我想要:

    c1    c2
r1  2.1%  3.5%
r2  3.4%  4.5%

我真的不需要输出明确地是一个数据框,而只是保留列和行名称的东西。

2 个答案:

答案 0 :(得分:2)

要进一步控制格式,请考虑将sprintf()%%格式化选项一起使用:

# One more column of values
  df <- as.data.frame(rbind(c(2.1, 3.5, 2), c(3.4, 4.5, 1/3)))
  dimnames(df) <- list(paste0("c", 1:2), paste0("r", 1:3))

# Compare these two approaches:
  as.data.frame(lapply(df, paste0, "%"))
  as.data.frame(lapply(df, function(x) sprintf("%3.1f%%", x)))

答案 1 :(得分:1)

最直接的方法可能是

df[] <- paste0(as.matrix(dataframe), "%")

我们还可以使用apply

df[] <- apply(df, 1, function(x) paste0(x, "%"))

另一种方法是使用dplyr中的mutate_all

library(dplyr)
dataframe %>% 
     mutate_all(list(~paste0(., "%")))
相关问题