的意思是输出列表中第200到250个元素,其中list为列表名。
structure(list(id = c(10L, 10L, 10L, 10L, 10L, 10L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 14L, 14L, 14L,
14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L, 14L,
14L, 14L, 14L, 14L), group = c(3, 3, 3, 3, 3, 3, 2, 2, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 3, 3,
2, 2, 2, 3, 1, 3, 2, 2, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2)), .Names = c("id",
"group"), row.names = c(3618L, 3218L, 3372L, 3613L, 3217L, 3531L,
3653L, 3835L, 3748L, 3740L, 4007L, 3769L, 3915L, 3834L, 3813L,
3927L, 4066L, 4048L, 3978L, 3731L, 4030L, 3721L, 3869L, 4070L,
4021L, 3789L, 3749L, 3739L, 3964L, 3924L, 4023L, 4284L, 4238L,
4102L, 4642L, 4309L, 4577L, 4784L, 4125L, 4346L, 4088L, 4406L,
4785L, 4893L, 4347L, 4498L, 4758L, 4686L, 4469L, 4864L, 4193L
), class = "data.frame")
我的代码:
for (i in 1:(max(list$id))) {
p <- subset(list,list$id==i)
h <-0
for (j in 1:(nrow(p)-1)){
if (p$group[j]!=p$group[(j+1)]) {
h <- (h+1)
}
}
list$group_move[list$id==i] <- h
}
错误:
Error in if (p$group[j] != p$group[(j + 1)]) { :
missing value where TRUE/FALSE needed
- 我检查了N/A(is.na(list)),结果为false。
关于我的列表:
我有5000个id,其中可以将“34526”作为id。 我需要计算每个不同id在1、2和3组之间移动的次数。 我知道两个“for”循环效率不高,但我不知道有什么其他方法来区分每个id。
如果您能帮助我理解我的代码问题,那就太好了。 如果您知道一种为每个不同id编写注释的方法,那就更好了(这些注释不是常规函数)。
组
之间没有移动。请提供一个最小可复现的示例。 - MichaelChirico