的數據幀的一個細胞我有一個列表內許多數據幀的列表的只有一個成員,該列表內的數據幀中的一個是以下之一:選擇是R中
structure(list(`res.log[[i]]` = list("11", "8", c("7", "u"),
"11", "7", "4", "1", "6", "u", c("1", "7"), "1", "u", "u",
"u", c("20", "11", "18", "17"), "7", "10", "10", "2", "17",
c("1", "7"), "7", "14", "u", "7", c("4", "u"), c("1", "7"
), "7", "2", "10", "20", "8", "4", "7"), `as.factor(test.folds.trimmed[[i]]$tp)` = structure(c(3L,
14L, 12L, 14L, 6L, 10L, 9L, 11L, 8L, 14L, 3L, 7L, 12L, 2L, 11L,
2L, 14L, 5L, 14L, 1L, 1L, 12L, 12L, 14L, 7L, 10L, 12L, 4L, 4L,
12L, 14L, 13L, 10L, 9L), .Label = c("1", "10", "11", "14", "17",
"18", "2", "20", "22", "4", "6", "7", "8", "u"), class = "factor")), .Names = c("res.log[[i]]",
"as.factor(test.folds.trimmed[[i]]$tp)"), row.names = c(NA, -34L
), class = "data.frame")
的數據框本身的單元是'列表'數據類型。正如你在第一列中看到的,一些單元格有2或3個值。 對於第一列中具有多個值的單元格,我想要做的是我只想選擇與第二列中的相應行相等的值。如果它們中的任何一個都不等於第二列中相應單元格中的值,那麼隨機選取一個,哪一個都不重要,它可以始終是第一個,這並不重要,它們中的任何一個都可以被採用。
例如,在下圖中,您可以看到上述數據集的一部分。我想要做的是,對於第一列第三行,我只會保留「7」,因爲它等於第三行第二列的值。然後在第十行和第十五行,我選擇哪一個並不重要,其中任何一個都可以選擇。
我寫的代碼是這樣的,但它的工作原理很奇怪。它將第一列中的所有值更改爲第一個值!
for(FOLDS in 1){
for(rows in 1:nrow(res.log[[FOLDS]])){
if(any(res.log[[FOLDS]][,1][[rows]] ==
res.log[[FOLDS]][,2][[rows]])) res.log[[FOLDS]][,1][[rows]] <-
c(res.log[[FOLDS]][,1][[rows]][which(res.log[[FOLDS]][,1][[rows]] ==
res.log[[FOLDS]][,2][[rows]])])
}
}
神奇。像沒有缺陷的魅力一樣工作。謝謝! – Zideg