R数字序列到数据帧

时间:2016-06-21 14:46:23

标签: r dataframe

我有一个包含很多行的Dataframe,我想添加一个沿每个第x行计数的列并相应地标记它,例如:

ROW    LABEL
1      1
2      1
3      1
4      1
5      2
6      2
7      2
8      2
9      3
9      3

依此类推,其中ROW是我的Dataframe的行。我希望能够改变LABEL计数,在示例中我已经显示标签计数设置为4(每隔4行增加标签) 。 任何帮助表示赞赏。

P上。

3 个答案:

答案 0 :(得分:1)

两个字:integer division

使用rep()

N <- 4L; df$LABEL <- rep(seq_len(nrow(df)%/%N+1L),each=N,len=nrow(df));
df;
##   ROW LABEL
## 1   1     1
## 2   2     1
## 3   3     1
## 4   4     1
## 5   5     2
## 6   6     2
## 7   7     2
## 8   8     2
## 9   9     3

使用seq()

N <- 4L; df$LABEL <- seq(0L,len=nrow(df))%/%N+1L;
df;
##   ROW LABEL
## 1   1     1
## 2   2     1
## 3   3     1
## 4   4     1
## 5   5     2
## 6   6     2
## 7   7     2
## 8   8     2
## 9   9     3

数据

df <- data.frame(ROW=c(1L,2L,3L,4L,5L,6L,7L,8L,9L));

答案 1 :(得分:0)

您可以将close()与每个参数一起使用:

var sse = new EventSource("...");
sse.onerror = function() {
    sse.close();
};

然后分配它:

rep

为了使其更具动态性,您可以为x参数提供总行数的度量值:

rep(1:4, each=4)
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

这假设总行数可以被4整除。如果不是,你还可以包括length.out参数(由@Frank建议)来设置正确的长度差异:

df$label <- rep(1:4, each=4)

如果要改变每个标签的长度,也可以为不同长度的矢量提供重复以重复x中的每个元素。例如:

df$label <- rep(1:ceiling(nrow(df) / 4), each=4)

请注意,长度向量必须与x向量具有相同的长度。

答案 2 :(得分:0)

您可以使用以下代码。您可以更改前两行中的标签和重复次数。

labelQuantity <- 4
repeatLabel <- 4
label <- rep(1:labelQuantity,1,each=repeatLabel)
row <- seq(1,length(label),1)
myDataFrame <- as.data.frame(cbind(row,label))

干杯!