在R中为数据集中的任何一行创建一个虚拟的数据,如果有什么事情发生的话

首先我得说,我对编码和R还是个新手,所以这可能是个愚蠢的问题,但我找不到这样的问题(可能是因为我不知道具体要搜索什么吧)。

我有一个非常大的pagepath数据集,其中包含clientID和他们在网站上的浏览行为。我想为客户是否看到了某个页面做一个虚拟变量。问题是,我想让这个clientID在包含该特定clientID的每一行都有一个1,而不仅仅是在clientID访问该页面的那一行。

我的数据集是这样的

  ClientID pagepath         
1 12345    /home  
2 12345    /test1
3 12345    /test2 
4 67890    /test1
5 67890    /home
6 54321    /test1
7 54321    /home
8 09876    /home

我要的是输出。

  ClientID pagepath    dummy_test1     dummy_test2
1 12345    /home       1               1
2 12345    /test1      1               1
3 12345    /test2      1               1
4 67890    /test1      1               0
5 67890    /home       1               0
6 54321    /test2      0               1
7 54321    /home       0               1
8 09876    /home       0               0

希望得到帮助!

解决方案:

我们可以 group_by ClientID 并检查字符串 'test1''test2'pagepath 并新建两列。

library(dplyr)

df %>%
  group_by(ClientID) %>%
  mutate(dummy_test1 = +(any(grepl('test1', pagepath))), 
         dummy_test2 = +(any(grepl('test2', pagepath))))


#  ClientID pagepath dummy_test1 dummy_test2
#     <int> <fct>          <int>       <int>
#1    12345 /home              1           1
#2    12345 /test1             1           1
#3    12345 /test2             1           1
#4    67890 /test1             1           0
#5    67890 /home              1           0
#6    54321 /test1             1           0
#7    54321 /home              1           0
#8     9876 /home              0           0

+any 转换逻辑值 (TRUEFALSE)到整数值(10).

给TA打赏
共{{data.count}}人
人已打赏
未分类

Anaconda: 不能从 "rpy2.rinterface "中导入 "RRuntimeError"。

2022-9-9 2:45:16

未分类

工厂法C++

2022-9-9 2:45:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索