从带缩放数据的连续变量创建分类变量
Creating categorical variable from continuous variable w/ scaled data
我在这个社区潜伏了一段时间,但这是我的第一个问题...
背景:
我正在处理来自 UCI 的乳腺癌数据。 DATA
我想做的是潜在 Class 分析(从技术上讲是潜在特征,因为这些是连续变量),但我必须首先为每个变量缩放我的值。
一旦我缩放,我现在有 32 个变量,每个缩放并且范围从负到正(我相信 poLCA 函数不能使用负数或零)。有关我的缩放功能之一的示例,请参见下文。
> summary(scaled.dat.1)
V1
分钟。 :-2.0279
第一曲:-0.6888
中位数:-0.2149
均值:0.0000
第三题:0.4690
最大限度。 : 3.9678
问题
如何将这些缩放的连续值更改为 1:5?
的分类值
要分为 5 组,我会做这样的事情...
var1 <- c(NA, sample(-20:20, replace = T, size = 50))
thresholds <- quantile(var1, probs = seq(0, 1, length.out = 6)[-1], na.rm = T)
cat.var <- sapply(var1, (function(i){
ifelse(is.na(i), NA, min(which(i <= thresholds)))
}))
plot(cat.var~var1)
如果你想将它应用到整个数据框
categorize <- function(var1){
thresholds <- quantile(var1, probs = seq(0, 1, length.out = 6)[-1], na.rm = T)
cat.var <- sapply(var1, (function(i){
ifelse(is.na(i), NA, min(which(i <= thresholds)))
}))
}
apply(df, 2, categorize)
# alternatively
for (j in 1:ncol(df)) {
df[,j] <- categorize(df[,j])
}
我在这个社区潜伏了一段时间,但这是我的第一个问题...
背景: 我正在处理来自 UCI 的乳腺癌数据。 DATA
我想做的是潜在 Class 分析(从技术上讲是潜在特征,因为这些是连续变量),但我必须首先为每个变量缩放我的值。
一旦我缩放,我现在有 32 个变量,每个缩放并且范围从负到正(我相信 poLCA 函数不能使用负数或零)。有关我的缩放功能之一的示例,请参见下文。
> summary(scaled.dat.1)
V1
分钟。 :-2.0279
第一曲:-0.6888
中位数:-0.2149
均值:0.0000
第三题:0.4690
最大限度。 : 3.9678
问题 如何将这些缩放的连续值更改为 1:5?
的分类值要分为 5 组,我会做这样的事情...
var1 <- c(NA, sample(-20:20, replace = T, size = 50))
thresholds <- quantile(var1, probs = seq(0, 1, length.out = 6)[-1], na.rm = T)
cat.var <- sapply(var1, (function(i){
ifelse(is.na(i), NA, min(which(i <= thresholds)))
}))
plot(cat.var~var1)
如果你想将它应用到整个数据框
categorize <- function(var1){
thresholds <- quantile(var1, probs = seq(0, 1, length.out = 6)[-1], na.rm = T)
cat.var <- sapply(var1, (function(i){
ifelse(is.na(i), NA, min(which(i <= thresholds)))
}))
}
apply(df, 2, categorize)
# alternatively
for (j in 1:ncol(df)) {
df[,j] <- categorize(df[,j])
}