我从kaggle下载了泰坦尼克号列车数据集:
我的代码是:
df = read.csv('titanic.csv', header=TRUE)
df$Pclass = as.factor(df$Pclass)
df$Survived = as.factor(df$Survived)
df = df[,c(2,3,5,6,12)]
df = na.omit(df)
rownames(df) <- 1:nrow(df)
df$Age[df$Age <= 18] = "child"
df$Age[(df$Age > 18) & (df$Age <= 60) & (df$Age != "child")] = "adult"
df$Age[(df$Age != "child") & (df$Age != "adult")] = "senior"
df$Age = as.factor(df$Age)
summary(df)
在这一点上,总结结果是:
Survived Pclass Sex Age Embarked
0:424 1:186 female:261 adult :553 : 2
1:290 2:173 male :453 child :139 C:130
3:355 senior: 22 Q: 28
S:554
我的问题是使用变量:
barplot(table(df$Embarked), xlab="Port of Embarkment", ylab="Frequency", main="Histograma de la variable \n Embarked")
已上船的级别
> levels(df$Embarked)
[1] "" "C" "Q" "S"
这是我的问题,这是第一层:"“(空),我找不到一种方法来删除它。我已经测试了我在stackoverflow中发现的几种方法,但都无法解决我的问题。
发布于 2019-11-28 03:31:47
在删除了含有空值的Embarked行之后,重构:
df <- df[df$Embarked!="",]
df$Embarked <- factor(df$Embarked)
barplot(table(df$Embarked), xlab="Port of Embarkment",
ylab="Frequency", main="Histograma de la variable \n Embarked")
发布于 2019-11-28 06:11:13
或者,您也可以使用droplevels
:
df <- droplevels(df)
新级别的Embarked
:
> levels(df$Embarked)
[1] "C" "Q" "S"
这种方法的优点是,它将从一个因子中删除所有未使用的级别。您还可以从整个数据框的因子中删除所有未使用的级别。
https://stackoverflow.com/questions/59081186
复制