我正在嘗試劃分我的df(公司),以便我根據部門創建新的資料框。假設我有三個部門:工業、IT、醫療保健。我創建了一個包含以下扇區的列:
Df[, ncol(Df) 1] <- x$sector.
然后我嘗試回圈 df 以獲取新幀,如下所示:
IT = NULL
Industry = NULL
Health = NULL
for (i in 1:nrow(df)) {
if (df[i, ncol(df)] == "IT") {
IT<- df[i, ]
}
else if (df[i, ncol(df)] == "Industry") {
Industry <- df[i, ]
}
else if (df[i, ncol(df)] == "Healthcare") {
Health <- df[i, ]
}
}
然而,新的資料框(IT、工業和醫療保健)僅包含最后一次迭代,因此每個 df 僅包含一個觀察值。我在這里想念什么?是否可以通過回圈來實作這一點,還是我應該在這里使用另一種方法?
uj5u.com熱心網友回復:
您需要在回圈中累積結果。這樣的事情將與您的原始代碼保持一致:
IT = NULL
Industry = NULL
Health = NULL
for (i in 1:nrow(df)) {
if (df[i, ncol(df)] == "IT") {
IT<- rbind(IT, df[i, ])
}
else if (df[i, ncol(df)] == "Industry") {
Industry <- rbind(Industry, df[i, ])
}
else if (df[i, ncol(df)] == "Healthcare") {
Health <- rbind(Health, df[i, ])
}
}
也就是說,您可以通過以下方式更輕松地完成此任務:
dats <- split(DF, x$sector)
dat1 <- dats[[1]]
dat2 <- dats[[2]]
dat3 <- dats[[3]]
您應該能夠通過查看來識別哪個類別屬于哪個資料集names(dats)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465256.html
