我有一個大資料框,其中名稱(col1)應該嵌套在位置名稱(col2)中。在下面的示例中,來自 col1 的“d”應該在 col2 的“z”內,但在第八個元素中列為“y”。我不能只是在 col2 中重命名“y”,因為它在大多數地方都是正確的。只有當 col1 == "d" 時,我才需要將 "y" 重命名為 "z"。這是一個包含多個示例的大型資料框,因此也無法僅重命名元素
col1<-c("a","b","c","d","a","b","c","d")
col2<-c("x","y","z","z","x","y","z","y")
df<-data.frame(col1,col2)
uj5u.com熱心網友回復:
這將是容易,如果你可以創建一個資料幀lookup用的正確組合col1和col2。然后,您可以left_join使用lookup.
library(dplyr)
# Create a lookup table. In reality you probably need to create this with other methods.
lookup <- df %>%
distinct() %>%
filter(!(col1 %in% "d" & col2 %in% "y"))
# join col1 to the lookup
df2 <- df %>%
select(-col2) %>%
left_join(lookup, by = "col1")
df2
# col1 col2
# 1 a x
# 2 b y
# 3 c z
# 4 d z
# 5 a x
# 6 b y
# 7 c z
# 8 d z
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/356512.html
