簡體   English   中英

根據R中的DF變量列表讀取DF中每個變量的類

[英]Reading the class of each variable in a DF based on a DF list of variables in R

令人困惑的標題,很抱歉,我正在嘗試打印出另一個DF中包含的DF中每個變量的類的列表。

DF1 = 50個不同類型的變量(Variable1,Variable2等)

DF2 =包含15個變量的列表(變量1名稱,變量2名稱,變量3名稱等在一行中)

如何根據DF2中的名稱在DF1中輸出變量的類?

我以為這樣可以做到:

class(DF1[,DF2[1,]])

但是它不起作用。

DF2 [1,]打印出正確的名稱,但是說它有18個級別,在DF2中列出了所有其他名稱...我在想這個錯誤嗎?

目標是查看DF1中的所有列(如果它們是因子變量),並將因子的級別輸入varmap。 DF2將具有DF1的數據類型

編輯:更多代碼

vartype=matrix(0,nrow=nrow(DF2),ncol=1)
for (i in 1:nrow(DF2))
{
  temp=class(DF1[,DF2[i,]])
  if (temp=="Factor")
  { 
    DF2[i]=1;       
  }
}

varmap=list();
length(varmap)=nrow(DF2);
for (i in 1:nrow(DF2))
{
  if (DF2[i]=="factor")
  {
    varmap[[i]]=unique(DF1[,DF2[i]])
  }
}

一些數據:

DF1 <- data.frame(
  X = sample(1:10),
  Y = sample(c("yes", "no"), 10, replace = TRUE)
)

str(Data)
DF2=as.data.frame(c("X","Y"))

我認為您想要的是以下內容:

sapply(DF1[, DF2[,1]], class)

首先,子集DF1只包含那些在DF2中命名的列,然后將“類”函數映射到每一列, sapply使它返回一個向量。 要獲取數據集中各列的類,您需要使用一個映射函數,例如lapply或for循環。 例如lapply(mtcars, class為您提供每一列的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM