如何更改列表元素的顺序?

问题描述 投票:0回答:1

你好我创建了一个函数,它重新排序列表的嵌套元素:

library(magrittr)
fun=function(string,NO){
  lapply(strsplit(string,","),function(x) 
    paste(c(by(x, c(s<-rep(1:NO,2),rep(0,length(x)-length(s)))
               ,paste0,collapse=",")),collapse=", "))
}
LIST<-list(list("DC,MD,MA,Baltimore,Washington,Boston,France,China"), list("DC,MD,MA,Baltimore,Washington,Boston,France,China,Turkey"))
rapply(LIST,fun,how="list",NO=3)

如何修改它以将城市置于国家之前?

r list
1个回答
1
投票

我完全重构了。如果你想重新排列一个字符串,其中N个状态后跟N个城市,然后将它们按顺序放回城市,州,首先将字符串完全拉开。

state_city <- unlist(strsplit(string, ", "))
state <- state_city[1:(length(state_city)/2)]
city <- state_city[(length(state_city)/2 + 1):length(state_city)]
paste(city, state, sep = ", ", collapse = ", ")

作为一个功能:

f <- function(string, NO){
    state_city <- unlist(strsplit(string, ", "))
    state <- state_city[1:(length(state_city)/2)]
    city <- state_city[(length(state_city)/2 + 1):length(state_city)]
    paste(city, state, sep = ", ", collapse = ", ")
}

你实际上并不需要NO,但我把它放在那里以防你想用它做其他事情。

© www.soinside.com 2019 - 2024. All rights reserved.