我有一個資料框,我在其中提取了某個子集:
tmp <- mtcars |> select(disp, hp)
然后我做一些資料操作
tmp$disp <- tmp$disp*0
tmp$hp <- tmp$hp*2
現在我想將更改重新整合到原來的如何?
當然,我可以首先處理原始 df,但我只想知道如何將 df 中的所有值替換為子集。
我想保持列名的順序,如果可能的話我不想使用任何索引。我還假設存在選擇查詢很長的用例。
uj5u.com熱心網友回復:
您需要選擇mtcars與名稱匹配的名稱,tmp然后替換值。
mtcars[,names(tmp)] <- tmp
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 0 220 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 0 220 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 0 186 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 0 220 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 0 350 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 0 210 2.76 3.460 20.22 1 0 3 1
uj5u.com熱心網友回復:
或者不是創建“tmp”,
library(dplyr)
mtcars <- mtcars %>%
mutate(disp = disp*0, hp = hp*2)
或在`data.table)
setDT(mtcars)[, c("disp", "hp) := .(0, hp *2)]
或在base R
mtcars[c("disp", "hp")] <- list(0, mtcars$hp*2)
uj5u.com熱心網友回復:
答案是:
mtcars <- mutate(mtcars, tmp)
編輯:添加這個解決方案,這可能更直觀
newdf <- mtcars |> mutate(tmp)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/530721.html
標籤:r数据框部署者
