我有如下示例資料:
# list of data frames:
l = list(a=mtcars, b=mtcars, c=mtcars)
如果串列名稱存在于向量中,我想list_names_available_for_name_change用new_list_names.
list_names_available_for_name_change <- c("a", "c")
new_list_names <- c("android", "circus")
我想過做類似的事情:
names(l)[names(l) == "a"] <- "android"
但我想為整個串列執行此操作。就像是:
names(l)[names(l) == list_names_available_for_name_change ] <- new_list_names
我應該如何撰寫語法來實作這一點?
期望的輸出:
# list of data frames:
l = list(android=mtcars, b=mtcars, circus=mtcars)
uj5u.com熱心網友回復:
在base R中,使用match串列名稱的子集查找串列的“名稱”的匹配位置,使用它來獲取相應的“new_list_names”names并對list
nm1 <- new_list_names[match(names(l), list_names_available_for_name_change)]
i1 <- !is.na(nm1)
names(l)[i1] <- nm1[i1]
-輸出
names(l)
[1] "android" "b" "circus"
或與mapvalues
names(l) <- plyr::mapvalues(names(l),
list_names_available_for_name_change, new_list_names)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527681.html
標籤:r列表
上一篇:如何在R中洗掉日期列
下一篇:按數字向量拆分字串
