[英]Function in R for several variables
我想取消分類 R 中的幾個因子變量。我需要這個功能來處理很多變量。 目前我為每個不方便的變量重復代碼:
unclass:
myd$ati_1 <-unclass(myd$ati_1)
myd$ati_2 <-unclass(myd$ati_2)
myd$ati_3 <-unclass(myd$ati_3)
myd$ati_4 <-unclass(myd$ati_4)
我查看了apply()
function 系列,但我什至不知道這是否是正確的方法。 我還閱讀了有關 for 循環的內容,但每個示例都只是關於簡單的整數,而不是當您需要循環多個變量時。
如果有人能幫助我,我會很高興。
這里有幾種方法。 我們使用 R 附帶的 CO2,它有幾個因子列。 這取消了這些列的分類。
如果您需要其他標准,那么
代碼如下。 在所有這些中,輸入都沒有被覆蓋,因此如果您想從頭開始重新運行它,您仍然可以使用未更改的輸入,並且一般來說,覆蓋對象很容易出錯。
# Base R
ix <- sapply(CO2, is.factor)
replace(CO2, ix, lapply(CO2[ix], unclass))
# collapse
library(collapse)
ftransformv(CO2, is.factor, unclass)
# dplyr
library(dplyr)
CO2 %>%
mutate(across(where(is.factor), unclass))
根據您的需要,這可能就足夠了,或者如果矩陣結果正常,則省略 as.data.frame。
as.data.frame(data.matrix(CO2))
您可以使用循環:
block <- c("ati_1", "ati_2", "ati_3", "ati_4")
for (j in block) {myd[[j]] <- unclass(myd[[j]])}
# The double brackets allows you to specify actual names to extrapolate withing the data frame
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.