我有一个这样的chr向量:
t<-c("lucas","2","3","luciano","1","5","jack","1","luciana","2","3","4","5")卢卡斯,2,3会是同一个客户。卢西亚诺,1,5将是不同的,以此类推。
我创建了两个向量,其中定义了每个客户端的限制。
start<-c(1,4,7,9)
end<-c(3,6,8,13)我需要把它们映射到列列表中。所以我给每个客户留了一列。如果我点击它,我会打开每个客户矩阵。
在这种情况下,我设想一个列列表,有三行。如果我点击卢卡斯的名单,我会
卢卡斯2 3
卢西亚娜
卢西亚娜2 3 4 5
我能用地图做这件事吗?
发布于 2020-10-27 02:55:21
我不知道如何使用map,但mapply似乎运行得很好:
t<-c("lucas","2","3","luciano","1","5","jack","1","luciana","2","3","4","5")
start<-c(1,4,7,9)
end<-c(3,6,8,13)
output <- mapply(start, end, FUN = function(start_i, end_i){
t[start_i:end_i]
})

或者,你可以喜欢名单上的名字,然后做一些类似的事情:
output <- mapply(start, end, FUN = function(start_i, end_i){
t[(start_i+1):end_i]
})
names(output) <- t[start]

发布于 2020-10-27 04:23:26
您可以使用map,如@Gregor所示,但在您的示例中,我认为map2更合适,类似于@Dubukay所示的基本R选项mapply。
我太困惑于点击和打开矩阵部分在你的问题,但也许你打算设置名单的名称。
list_vec <- purrr::map2(start, end, ~t[.x:.y])
names(list_vec) <- t[start]
list_vec
#$lucas
#[1] "lucas" "2" "3"
#$luciano
#[1] "luciano" "1" "5"
#$jack
#[1] "jack" "1"
#$luciana
#[1] "luciana" "2" "3" "4" "5" 因此,现在可以使用list_vec$lucas获取lucas的所有元素。
https://stackoverflow.com/questions/64547674
复制相似问题