将列表按长度的一半在R中拆分

  • 本文关键字:拆分 一半 列表 r list
  • 更新时间 :
  • 英文 :


我有一个包含列表的tibble with变量。每个列表都有不同的长度。我想要两个新的变量,比方说"lon"one_answers"lat"。在变量"lon"中,我希望每个列表都有前半部分,在变量"lat"中有后半部分。

数据:

file_url <- "https://github.com/slawomirmatuszak/Covid.UA/raw/master/sample.Rda?raw=true"
load(url(file_url))

我可以通过过滤列表来实现这一点,但我希望通过更通用的代码(基于长度,而不是特定的数字(来实现。

sample.data$lon <- lapply(sample.data$geometry, function(x) unlist(x)[x<40])
sample.data$lat <- lapply(sample.data$geometry, function(x) unlist(x)[x>40])

也许,您可以尝试使用length来获得geometry列的前半部分和后半部分。

sample.data$lat <- sapply(sample.data$geometry, function(x) 
{tmp <- unlist(x);tmp[1:(length(tmp)/2)]})
sample.data$lon <- sapply(sample.data$geometry, function(x) 
{tmp <- unlist(x);tmp[((length(tmp)/2) + 1):length(tmp)]})

最新更新