我正在尝试在R中的表格的每个单元格中插入一个百分比
这是我正在使用的数据框
1 a 1535 4 0 1539
2 b 768 6 0 774
3 c 112 1 0 113
4 d 279 4 0 283
5 e 231 5 0 236
这是我用来生成它的代码:
df <-structure(
list(
category = c(
"a",
"b",
"c",
"d",
"e"
),
group1 = c(1535,
768, 112, 279, 231),
group2 = c(4, 6, 1, 4, 5),
group3 = c(0,
0, 0, 0, 0),
groupall = c(1539, 774, 113, 283, 236)
),
class = c("grouped_df",
"tbl_df", "tbl", "data.frame"),
row.names = c(NA, 5L),
groups = structure(
list(
category = c(
"a",
"b",
"c",
"d",
"e"
),
.rows = list(1L,
2L, 3L, 4L, 5L)
),
row.names = c(NA,-5L),
class = c("tbl_df",
"tbl", "data.frame"),
.drop = FALSE
)
)
我已经尝试过此代码:
findPerc<- function(x){
percent <- as.numeric(round((x/10000) * 100, digits = 2))
paste(percent, "%", sep = '')
}
然后使用]将其应用于数据框>
df <- apply(df,c(1,2),findPerc)
但是这会返回错误:x / 10000错误:二进制运算符的非数字参数
我想要的输出看起来像:
1 a 1535(15.35%) 4(0.04%) 0(0.00%) 1539(15.39%) 2 b 768 (7.65%) 6(0.06%) 0 (0.00%) 774(7.74%)
有人可以帮我解决我哪里出错了吗?
我正在尝试在R中的表的每个单元格中插入一个百分比,这是与1 a 1535 4 0 1539 2 b 768 6 0 774 3 c ...一起工作的数据帧。]
category
列强制为数字值。第二个问题是apply
将所有选定的页边距强制转换为相同类型,在这种情况下为字符。观察:apply(df, 2, mode)
category group1 group2 group3 groupall
"character" "character" "character" "character" "character"