Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在复制的数据帧上映射阵列_R_Dataframe - Fatal编程技术网

R 如何在复制的数据帧上映射阵列

R 如何在复制的数据帧上映射阵列,r,dataframe,R,Dataframe,我正试图在我的测试副本上映射一个向量 test <- data.frame(a = LETTERS[1:2], b = letters[1:2]) test_replica <- do.call("rbind", replicate(3, test, simplify = F)) vector_to_map <- c("10:10", "10:11", "10:12") 我将为“要映射的向量”创建一个列向量,并将其绑定到data.frame。与将其结合在一起相比,在性能上有以

我正试图在我的测试副本上映射一个向量

test <- data.frame(a = LETTERS[1:2], b = letters[1:2])
test_replica <- do.call("rbind", replicate(3, test, simplify = F))
vector_to_map <- c("10:10", "10:11", "10:12")

我将为“要映射的向量”创建一个列向量,并将其绑定到data.frame。与将其结合在一起相比,在性能上有以下优势:

test <- data.frame(a = LETTERS[1:2], b = letters[1:2])
test_replica <- do.call("rbind", replicate(3, test, simplify = F))

x1 <- c(10,10,10)
x2 <- c(10,11,12)

vector_to_map <- paste(rep(x1, each=2), rep(x2, each = 2), sep = ":")

(test_replica <- cbind(vector_to_map, test_replica))

##   vector_to_map a b
## 1         10:10 A a
## 2         10:10 B b
## 3         10:11 A a
## 4         10:11 B b
## 5         10:12 A a
## 6         10:12 B b

test根据我的评论,您只需执行以下操作:

test_replica$vector_to_map <- rep(vector_to_map, each = 2)

#  a b vector_to_map
#1 A a         10:10
#2 B b         10:10
#3 A a         10:11
#4 B b         10:11
#5 A a         10:12
#6 B b         10:12

您可以尝试
test\u replica$vector\u to\u映射以保持清晰,您希望用三个时间字符串屏蔽
字符
向量,对吗?如果您认为需要迭代10到10的
整数
向量,然后是10到11,…,那么这是一个稍微不同的问题(我建议使用字符串,因为这可能不是最好的方法)。也许你可以提供一些你打算如何使用它的背景资料。@Mike H.非常感谢。。rep(..,each=x)就是我要找的!!
test_replica$vector_to_map <- rep(vector_to_map, each = 2)

#  a b vector_to_map
#1 A a         10:10
#2 B b         10:10
#3 A a         10:11
#4 B b         10:11
#5 A a         10:12
#6 B b         10:12
test_replica$vector_to_map <- rep(vector_to_map, each = nrow(test_replica) / length(vector_to_map))