首页 文章

子-ING . 在数据框中创建/清除新变量;当我子集时,不在新数据框中

提问于
浏览
0

我有一个数据框,其中我创建了新的变量(原始的“清理”版本) . 当我对数据帧进行子集化时,这些新变量似乎不在子集化数据框中 . 我是否需要再次创建这些新变量?或者有没有办法确保它们在子集化数据框中 .

更多细节:我'附加'了一个数据框'x' .

newdf <- subset (x, (income %in% c('<20000')))

(收入是另一个变量的清理版本,并且是一个因子变量 . )因此,新数据框应仅包含收入低于20000的那些数据框 .

这似乎有效,确实给了我一个具有正确观察数量的新数据框 .

但是,当我尝试做的时候

freq (newdf$income)

我明白了:

plot.window中的错误(xlim,ylim,log = log,...):需要有限的'xlim'值另外:警告消息:1:在min(w.l)中:min没有非缺失参数;返回Inf 2:在max(w.r)中:max没有非缺失参数;返回-Inf 3:在min(x)中:min没有非缺失参数;返回Inf 4:在max(x)中:max没有非缺失参数;返回-Inf

谢谢!

1 回答

  • 0

    使用 table() 函数检查新子集数据帧中 income 的频率或计数 .

    据我所知,你想要在 newdf 中只有一个 income 变量水平的数据集,即 <20000 ,然后检查否 . 在 newdf 中收入 <20000 的观察

    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
    

    Another Example

    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
    

相关问题