所以我有一个示例数据框,其中包含 id、count 和 username 列,其中 id 和 count 是数字,username 是字符串。
对于数据框的每一行,我想设置一个名为“比率”的新列的值,比率定义为
计数/行数,其中用户名 == 该行中的用户名
所提供数据的示例:
在用户名为“Tom”的每一行中,比率将为 count/4 ,因为用户 Tom 在数据中被找到了四次。
这只是我的问题的简化版本,for 循环不是一个选项,因为我的原始数据框有大约 340 万行,而我之前使用 for 循环迭代例如“用户名”的唯一值来解决这个问题的方法问题需要永远。
我的数据框的输入:
structure(list(id = 1:20, count = c(140L, 89L, 17L, 114L, 129L,
86L, 21L, 50L, 197L, 160L, 8L, 14L, 78L, 208L, 155L, 55L, 63L,
20L, 189L, 79L), usernames = structure(c(4L, 3L, 5L, 5L, 2L,
3L, 1L, 1L, 3L, 1L, 3L, 2L, 5L, 5L, 4L, 4L, 2L, 2L, 2L, 3L), .Label = c("Jerry",
"Mark", "Phil", "Tina", "Tom"), class = "factor")), .Names = c("id",
"count", "usernames"), row.names = c(NA, 20L), class = "data.frame")
我希望我为您提供了一切以帮助您理解和重现问题,如果缺少某些内容,请随时在评论中提及。