[英]Create dummy variable based on if df1 rowdate is between two dates in df2 and df1 class match df2 class in r
[英]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.