我希望對某些資料運行 for 回圈以查找某些 id 代碼,然后修改現有串列。我遇到了一個問題,我的串列似乎被 NULL 值覆寫了;我確信這是一個非常簡單的解決方法,我無法繞開我的大腦。下面是代碼:
# my sample data
sample_data <-
data.frame(
type = c("dimension", "dimension", "dimension", "dimension", "dimension"),
d_id = c("1234", "last_year", "4567", "897", "9001"),
sub_id = c("dx", "pe", "ou", "ytu", "iouy")
)
# my initial list
my_list <- list(dx = NULL, ou = NULL, pe = NULL, co = NULL, ao = NULL)
# loop, when there is a value assign it within the list, when an error kicks because there is no value assign null
# or could simply leave null
for (dim in c("dx", "ou", "pe", "co", "ao")) {
tryCatch(
{
my_list[dim] <- sample_data[sample_data$sub_id == dim & sample_data$type == "dimension",]$d_id
},
error = function(e) {
my_list[dim] <- NULL
}
)
}
我得到什么:
$dx
NULL
$ou
NULL
$pe
NULL
$co
NULL
$ao
NULL
我的期望:
$dx
[1] "1234"
$ou
[1] "4567"
$pe
[1] "last_year"
$co
NULL
$ao
NULL
uj5u.com熱心網友回復:
這不需要回圈。只需提取列并使用它來分配給fromd_id
的適當名稱list
sub_id
sample_data_sub <- subset(sample_data, sub_id %in% names(my_list))
my_list[sample_data_sub$sub_id] <- sample_data_sub$d_id
-輸出
> my_list
$dx
[1] "1234"
$ou
[1] "4567"
$pe
[1] "last_year"
$co
NULL
$ao
NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491054.html
上一篇:回圈一個函式并存盤每個結果的輸出
下一篇:冒泡排序未正確排序