我有一个数据框,其中我已经创建了新的变量(这是原件的清理版本)。当我对数据框进行子集化时,这些新变量似乎不在子集化数据框中。我是否需要再次创建这些新变量?或者有没有办法确保它们在子集化数据框中。
更多细节:我已经附上了数据框' x'。
newdf <- subset (x, (income %in% c('<20000')))
(收入是另一个变量的清理版本,是一个因子变量。) 因此,新数据框应仅包含收入低于20000的数据框。
这似乎有效,确实给了我一个具有正确观察数量的新数据框。
然而,当我尝试做
时freq (newdf$income)
我明白了:
plot.window(xlim,ylim,log = log,...)中的错误: 需要有限的&#39; xlim&#39;值 另外:警告信息: 1:在min(w.l)中:min没有非缺失的参数;返回Inf 2:在max(w.r)中:max没有非缺失参数;返回-Inf 3:在min(x)中:min没有非缺失参数;返回Inf 4:在max(x)中:max没有非缺失参数;返回-Inf
谢谢!
答案 0 :(得分:0)
使用table()
函数检查新子集数据框中income
的频率或计数。
据我了解,您希望对income
中只有一个<20000
变量级别newdf
的数据集进行子集化,然后选中否。 <20000
newdf
的观察结果
在iris
数据集
dim(iris)
# [1] 150 5
table(iris$Species)
# setosa versicolor virginica
# 50 50 50
newdf <- subset(iris, Species %in% "virginica")
dim(newdf)
# [1] 50 5
table(newdf$Species)
# setosa versicolor virginica
# 0 0 50
另一个例子
df <- data.frame(a = 1:9, b = as.factor(rep(c("<100","<200", "<300"), each = 3)))
df
# a b
# 1 1 <100
# 2 2 <100
# 3 3 <100
# 4 4 <200
# 5 5 <200
# 6 6 <200
# 7 7 <300
# 8 8 <300
# 9 9 <300
table(df$b)
# <100 <200 <300
# 3 3 3
newdf <- subset(df, b %in% "<300")
newdf
# a b
# 7 7 <300
# 8 8 <300
# 9 9 <300
table(newdf$b)
# <100 <200 <300
# 0 0 3