我有以下数据
var1 <- c("101299, 13-132, 13-,", "101299, 12-12, 15-," , "101300, 13-132, 13-,", "101300, 12-12, 15-,")
data <- data.frame(var1)
str(data)
library(dplyr)
data %>% mutate_if(is.factor, as.character) -> data
data
> data
var1
1 101299, 13-132, 13-,
2 101299, 12-12, 15-,
3 101300, 13-132, 13-,
4 101300, 12-12, 15-,
变量由字符组成。我想每隔一秒(或其他一些数字)添加第一行。最终结果应如下所示,
var1
101299, 13-132, 13-, 101299, 12-12, 15-,
101300, 13-132, 13-, 101300, 12-12, 15-,
有没有提示该怎么做?
添加:
正如下面的评论中所建议的,解决此问题的一种方法是
data4 <- cbind(data[1:2-1,], data[3:4,])
它生成我想要的表。但是,是否有可能以更抽象的方式进行操作,以便我可以在大型数据集中使用它?例如,我不想添加1行,而是想将10行添加到1,并希望重复执行1000次。
答案 0 :(得分:0)
尝试一下:
data <- data %>% mutate(index = 1:nrow(data))
second_rows <- data %>% filter(., index%%2==0) %>% rename(var2=var1)
first_rows <- data[data$index %in% (second_rows$index - 1),]
df <- cbind(first_rows, second_rows)[, c(1,3)]
df %>% mutate(new_var = paste(var1, var2)) %>% select(new_var)
如果您想更改格式以使用每三分之一或任何行,则将index %% 2 == 0更改为index %% 3 == 0,依此类推。