R:根据另一部分排序值有条件地对一列进行排序

CptNemo

我有这个数据转发

set.seed(28100)
    df <- data.frame(user_id = sample(1:8, 10, replace = TRUE),
                 timestamp = sample(1:1000, 10),
                 retweet = sample(999:1002, 10, replace=TRUE))
df <- df[with(df, order(retweet, -timestamp)),]
df
# user_id timestamp retweet
# 6        8       513     999
# 9        7       339     999
# 3        3       977    1000
# 2        3       395    1000
# 5        2       333    1000
# 4        5       793    1001
# 1        3       873    1002
# 8        2       638    1002
# 7        4       223    1002
# 10       6        72    1002

每个都有唯一的ID retweet对于每行,我想根据链或转发的相反顺序为用户分配等级。排名应该估算每个用户影响力:链条越长,早期Twitterer的得分越高。换句话说,我想根据来对每个转推链进行排名,timestamp并为之前转发过该推文的人分配更高的分数。如果两个用户同时发布了相同的转发,则应为他们分配相同的排名。

或在 df

df$ranking <- c(1,2, 1,2,3, 1, 1,2,3,4)
aggregate(ranking~user_id, data=df, sum)

#   user_id ranking
# 1       2       5
# 2       3       4
# 3       4       3
# 4       5       1
# 5       6       4
# 6       7       2
# 7       8       1
格林布拉

使用数据表:

library(data.table)
setDT(df)[order(-timestamp), ranking2 := seq_len(.N), by = retweet]
df[, sum(ranking2), keyby = user_id]
#    user_id V1
# 1:       2  5
# 2:       3  4
# 3:       4  3
# 4:       5  1
# 5:       6  4
# 6:       7  2
# 7:       8  1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有条件地匹配行的最后一部分?

如何有条件地将一列填充到列表中另一列中的值?

输入集中时,React Native有条件地呈现视图的一部分

根据另一列中的值有条件地计算一列的递归

根据R中一列中的连续值有条件地插入行

如何使用另一列中的值有条件地更改DF值

有条件地对依赖于另一个列值的列进行排序SQL

SQL-用字符串的一部分排序

有条件地将值从一列复制到另一列

根据另一列的行值有条件地返回一些行值的向量

根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

根据另一列值的一部分创建一个热编码列

有条件地将值从R中的一列粘贴到另一列

有条件地使用嵌套的for循环的一部分

根据另一列(Python Pandas)的值在列中添加一部分字符串

在Python Panda中对DataFrame的一部分进行排序,并根据行值按顺序返回新列

有条件地用另一列的值替换列的值perl

按文本字符串的一部分排序

根据R中另一列的一部分更改列的值

SQL Server-按结果的一部分排序

有条件地在R中用另一列(但不在同一行中)的值填充一列的值

R用可能的替换向量有条件地替换字符串的一部分

对列表的一部分和另一部分进行排序

仅当该表单组中的另一个特定表单控件具有值时,才根据需要有条件地设置特定表单控件(较大表单组的一部分)

根据值的第一部分的模式在列中排列/排序值

如何根据另一列有条件地添加具有新日期时间的新列

使用 VBA 根据另一列的值有条件地插入值时遇到问题

dplyr:根据另一列的条件有条件地对列进行排名?

C# 根据另一个数组对数组的一部分进行排序