I have an R data frame:
a <- 1:12
list <- c(rep("x",3),rep("y",4),rep("z",3),rep("x",2))
data <- data.frame(a,list)
data
a list
1 x
2 x
3 x
4 y
5 y
6 y
7 y
8 z
9 z
10 z
11 x
12 x
我希望创建一个新的列,每当“list”的值发生变化时,从1开始计数,也就是说,在此示例中:
b <- c(1:3,1:4,1:3,1:2)
data <- data.frame(a,list,b)
我并不是R语言的专家,也无法想出一种高效的方法来解决这个问题。我的主要问题似乎是“list”中的任何值都可能随时返回,但没有规定一个值块的长度。有人有什么想法吗?谢谢!
data
或list
)作为变量名称 - 如果以后您想要使用list()
函数,您可能会遇到非常奇怪的错误。 - Stephan Kolassa