r - 如何在 R 中实现这个结果

标签 r algorithm statistics dataset

Windows 7 上的 R 版本 2.11.1 32 位

我有两个数据集如下所示:

数据集A:

USER_B   ACTION
10       0.1
11       0.3
12       0.1

数据集B:

USER_A   USER_B   ACTION
1        10       0.2
1        11       0.1
1        15       0.1
2        12       0.2     

如何将USER_BACTIONdata_set_A添加到data_set_Bdata_set_A 中的 USER_Bdata_set_BUSER_B 的子集。

对于上面的例子,可能是:

USER_A   USER_B   ACTION
1        10       0.2+0.1
1        11       0.1+0.3
1        15       0.1
2        12       0.2+0.1 

data_set_B中我不需要考虑USER_A,只考虑data_set_A中出现的USER_B .

不知道不一一做是不是可以实现?

最佳答案

dfa <- data.frame(
        user_b = 10:12,
        action = c(0.1, 0.3, 0.1)
)

dfb <- data.frame(
        user_a = c(1, 1, 1, 2),
        user_b = c(10, 11, 15, 12),
        action = c(0.2, 0.1, 0.1, 0.2)
)


action <- dfa$action[match(dfb$user_b, dfa$user_b)]
action[is.na(action)] <- 0
dfb$action <- dfb$action + action
dfb

  user_a user_b action
1      1     10    0.3
2      1     11    0.4
3      1     15    0.1
4      2     12    0.3

关于r - 如何在 R 中实现这个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647612/

相关文章:

c# - 为同义词表创建字符变异算法

graph - GNUplot 中的平均线

database - Oracle 数据库统计应该多久运行一次?

c++ - 使用 Boost 从 C++ 中的样本 vector 计算平均值和标准差

R `parallel` 包在 CRAN 上不存在?

R with parallel & pls - 如何处理 Windows 中的非终止 Rscript 进程

javascript - 递归阶乘函数如何知道何时停止

r - 在 TO 覆盖一个函数中,我如何取回它?

r - 将具有不同大小向量的列表转换为平面向量

php - while 循环在 PHP 中不能正常工作吗?