行r上的if语句

英格兰

我目前有一个数据框,该数据框是从按时间顺序发生的事件的数据馈送中获取的。如果事件类型为1并且结果为1,我想在我的数据的每一行上添加一个新列,该列对应于下一个事件的player_id

例如

player_id <- c(12, 17, 26, 3)
event_type <- c(1, 3, 1, 10)
outcome <- c(1, 0, 1, 1)
df <- data.frame(player_id, event_type, outcome)
df
     player_id  event_type outcome
1        12          1       1
2        17          3       0
3        26          1       1
4         3         10       1

所以最终结果

      player_id event_type outcome next_player_id
1        12          1       1             17
2        17          3       0             NA
3        26          1       1              3
4         3         10       1             NA

非常感谢您的帮助,因为我仍处于r的初学者阶段

阿克伦

我们可以使用ifelselead

library(dplyr)
res <- df %>% 
         mutate(next_player_id =  ifelse(outcome==1 & event_type == 1, 
                                                lead(player_id), NA))
res
#  player_id event_type outcome next_player_id
#1        12          1       1             17
#2        17          3       0             NA
#3        26          1       1              3
#4         3         10       1             NA

还是在base Rtransformifelse

transform(df, next_player_id = ifelse(outcome == 1 & event_type==1, 
                c(player_id[-1], NA), NA))

编辑:&根据@RHertel的评论添加了条件

或者ifelse,我们可以分两步执行此操作,即1)创建逻辑索引,以及2)基于索引分配新列

i1 <- with(df, event_type == 1 & outcome ==1)
df$next_player_id[i1] <- c(df$player_id[-1], NA)[i1]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

else语句上的R错误

来自分类Dev

R Panel数据:基于ifelse()语句和上一行创建新变量

来自分类Dev

if语句中一行上的连续语句

来自分类Dev

mysql if语句在Group by语句的同一行上

来自分类Dev

FORTRAN:在WRITE语句上控制新行

来自分类Dev

使用if语句在df上应用lambda行

来自分类Dev

R数据帧的行组的条件语句

来自分类Dev

R根据if else语句选择行

来自分类Dev

SKAction.customActionWithDuration行上的连续语句必须用';'分隔

来自分类Dev

在UNION语句之后在分组行上使用WHERE

来自分类Dev

else&else-if语句是否应该放在单独的行上

来自分类Dev

一行上的连续语句必须用分隔:

来自分类Dev

在MyCol为x的行上插入语句

来自分类Dev

行和表上的语句之间的精确区别

来自分类Dev

使用r中的条件语句删除组的前3行

来自分类Dev

SQL语句以选择上一行状态为'C'的行AS400

来自分类Dev

我是否认为没有办法在Python的一行上放置if语句和else语句?

来自分类Dev

R比较上一行的值

来自分类Dev

R中的嵌套表上的行

来自分类Dev

R对行的子集在组上执行计算

来自分类Dev

行子集上的R mutate_at

来自分类Dev

在R中ifelse中的行上循环

来自分类Dev

在R中的整个行上应用

来自分类Dev

IF语句上的INNER JOIN?

来自分类Dev

在ORDER BY上使用IF语句

来自分类Dev

If语句上的缩进错误

来自分类Dev

.join语句上的TypeError

来自分类Dev

在语句的同一行上显示MathJax表达式

来自分类Dev

编译器错误:“一行上的连续语句必须用;分隔”