R 在数据框的行中找不到任何更改
我想对每一行的所有列运行我的代码,并找出每一行有多少+ve更改和负更改 +ve变化意味着与以前的值相比,数量增加(例如:(1,3),(2,3)) -ve变化意味着与之前的值相比,数量减少(例如:(3,2)、(2,1)) 样本数据: 带tidyverse:R 在数据框的行中找不到任何更改,r,R,我想对每一行的所有列运行我的代码,并找出每一行有多少+ve更改和负更改 +ve变化意味着与以前的值相比,数量增加(例如:(1,3),(2,3)) -ve变化意味着与之前的值相比,数量减少(例如:(3,2)、(2,1)) 样本数据: 带tidyverse: library(tidyverse) df1 <- gather(df,k,v,-PID) inner_join(df1 %>% group_by(PID) %>% summarise(n=sum(as.integer(v&
library(tidyverse)
df1 <- gather(df,k,v,-PID)
inner_join(df1 %>% group_by(PID) %>% summarise(n=sum(as.integer(v>lag(v)),na.rm=TRUE)),
df1 %>% group_by(PID) %>% summarise(n=sum(as.integer(v<lag(v)),na.rm=TRUE)),by="PID")
## A tibble: 4 x 3
# PID n.x n.y
# <fct> <int> <int>
#1 abc 4 3
#2 def 2 3
#3 hij 0 0
#4 klm 3 2
库(tidyverse)
df1%group_by(PID)%>%SUMMARSE(n=总和(as.integer(v>滞后(v)),na.rm=TRUE)),
df1%>%groupby(PID)%>%summary(n=sum(as.integer)(v带基数r):(我自己创建了一个样本数据集)
set.seed(2)
PID您的问题是什么?另外,使用dput()
函数添加数据示例(不是图片)和您尝试过的代码示例(我想运行我的代码)。
set.seed(2)
PID <- as.data.frame(matrix(sample(c(1,2,3), 40, T), nrow = 4))
PID$poschanges <- colSums(apply(PID, 1, diff) > 0)
PID$negchanges <- colSums(apply(PID, 1, diff) < 0)
PID
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 poschanges negchanges
1 2 1 3 2 2 1 1 1 2 3 3 3
2 3 3 2 2 1 2 2 1 2 1 2 4
3 1 3 3 2 1 3 3 1 3 3 3 3
4 2 1 2 1 2 3 2 3 3 2 4 4