我有以下 data.frame
user_id 1 2 3 4 5 6 7 8 9
1 54449024717783 0 0 1 0 0 0 0 0 0
2 117592134783793 0 0 0 0 0 1 0 0 0
3 187145545782493 0 0 1 0 0 0 0 0 0
4 245003020993334 0 0 0 0 0 1 0 0 0
5 332625230637592 0 1 0 0 0 0 0 0 0
6 336336752713947 0 1 0 0 0 0 0 0 0
我想要做的是创建一列(并删除 1:9)并在我的值为 1 的地方插入列名,每个用户只包含值为 1 的列,
如果我正在运行以下功能:
rowSums(users_cluster(users_cluster), dims = 1)
它会总结所有的行值,但我需要用列名复制它
最佳答案
基础 R 解决方案:
data.frame(user_id = df[, 1],
name = which(t(df[, -1] == 1)) %% (ncol(df) - 1))
# user_id name
# 1 54449024717783 3
# 2 117592134783793 6
# 3 187145545782493 3
# 4 245003020993334 6
# 5 332625230637592 2
# 6 336336752713947 2
关于r - 从每一行获取索引并与原始 data.frame 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48048475/