我有一个基于reddit帖子的数据,其中每行代表一个reddit帖子,以及用户名和是否写帖子的月份。我还有一个二进制变量,"集体行动,如果帖子包含集体行动呼叫则编码为1,否则编码为0。以及另一个变量"directed_to_whom",其预测帖子针对谁然而,我正试图将这些措施转换成小组形式,在用户名一级而不是每个职位上进行衡量。
我有一个变量"id"来唯一地标识每个用户名,对于"集体行动"指标,我感兴趣的是计算用户名埃里克·卡特曼写的帖子中包含集体行动的比例。例如,如果埃里克·卡特曼在reddit上写了7篇帖子,但其中只有5篇被标记为包含集体行动,那么Cartman将具有0.71 = 5个集体行动帖子/7个总帖子的集体行动比例。类似地,如果Cartman仅在7个帖子中的4个中提到国会,那么用户名Cartman的国会比例将是0.571 = 4次提到大会/7个员额总数。
下面是一个数据示例:
dput(df[1:10,c(1,4,7,8,14)]) # Print data example with specific columns
输出:
structure(list(id = c(213L, 365L, 411L, 192L, 154L, 443L, 453L,
462L, 213L, 213L), username = c("Cartman", "Cartman",
"Cartman", "Kyle profleski", "Kyle profleski",
"Cartman", "Kyle profleski Kyle profleski", "Kyle profleski",
"Cartman", "Cartman"), collective_action = c(0, 1, 0, 0,
1, 1, 0, 0, 0, 1), directed_to_whom = c("Congress",
"Congress", "Senate", "Congress", "Congress", "president",
"president", "Senate", "Congress", "Senate"), month_year = structure(c(2011.41666666667,
2011.41666666667, 2011.41666666667, 2011.41666666667, 2011.41666666667,
2011.41666666667, 2011.41666666667, 2011.41666666667, 2011.41666666667,
2011.41666666667), class = "yearmon")), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -10L), groups = structure(list(
uusername = c("Cartman", "Cartman",
"Cartman", "Kyle profleski", "Kyle profleski",
"Cartman", "Kyle profleski Kyle profleski", "Kyle profleski",
"Cartman", "Cartman"), .rows = structure(list(
5L, 4L, c(1L, 9L, 10L), 2L, 3L, 6L, 7L, 8L), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -8L), .drop = TRUE))
我的预期输出如下所示,其中"direc_to_Congress__prop"度量每个用户名中指向某个给定对象(如参议院、国会等)的提及比例,例如,创建一个列,严格度量Cartman在reddit上所有帖子中提及国会的比例。
id. username collec_action_prop direc_to_Congress__prop
521. Cartman 0.71 0.57
501. Mr.Mackey 0.4 .32
499 Kyle profleski 0.3 0.09
1条答案
按热度按时间sxissh061#
感谢@Ben的建议,以下是这两个变量的解:
这里我正在计算用户名为Eric Cartman的帖子中提到集体行动的比例。
在这里,我测量的是由特定用户名撰写的帖子在“指向谁”指标中指向给定内容的提及比例