У меня есть набор данных, который содержит 900 столбцов числовых данных, и мне нужно преобразовать числовые столбцы в факторы, имеющие метки. Многие ярлыки будут повторяться. Я пытаюсь написать функцию, которая будет принимать числовые столбцы, определить тип метки, который нужен столбцу, а затем применить эту метку.Преобразование числовых столбцов в факторы с разными метками с использованием ключа
Вот кадр примера данных:
#create data frame with columns a,b,c,d
a<-c(1,2,3,4,5)
b<-c(0,1,0,1,0)
c<-c(1,0,1,0,1)
d<-c(2,3,4,5,3)
x<-as.data.frame(cbind(a,b,c,d))
У меня есть отдельный dataframe (т.е. у), который включает в себя ключ (т.е. столбец е), который идентифицирует, какой фактор метка должна быть применена к какому из столбцов (т.е. столбец f). Обратите внимание, что b и c должны иметь одну и ту же метку.
e<-c(1,2,2,3)
f<-c("a","b","c","d")
y<-as.data.frame(cbind(e,f))
Я хотел бы написать функцию, которая выполняет следующие функции, но автоматизирована. Вот примеры ярлыков, которые я хотел бы применить к a, b, c, d - где a и d - разные, но b и c одинаковы.
x$a<-factor(x$a,
levels=c(1,2,3,4,5),
labels=c("Less than 25%",
"25-50%",
"51-75%",
"76-90%",
"More than 90%"))
x$b<-factor(x$b,
levels=c(0,1),
labels=c("Yes","No"))
x$c<-factor(x$c,
levels=c(0,1),
labels=c("Yes","No"))
x$d<-factor(x$c,
levels=c(1,2,3,4,5),
labels=c("l","m","n","o","p"))
С окончательных данных набор выглядит как:
>x
a b c d
1 Less than 25% Yes No m
2 25-50% No Yes n
3 51-75% Yes No o
4 76-90% No Yes p
5 More than 90% Yes No n
В фактическом наборе данных, будет близка к 60 этикеток.
У вас есть информация о том, какие уровни и метки для каждой переменной должны храниться где-нибудь или вы используете какую-то логику, вам, какими должны быть уровни и метки? – aosmith
У меня есть уровни и метки, но их нужно будет написать вручную. – Sam
Если они еще не хранятся в любом месте, я не уверен, как вы можете писать уровни и метки, если нет какой-либо логики, которая может быть использована на основе фактического набора данных, чтобы угадать, какими они должны быть. В вашем примере, однако, я не вижу, что может быть логикой, особенно для ярлыков. – aosmith