首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以这种方式识别一个子集有什么错: bull[c(1:10) & bull$YearsPro >= 10,]?

以这种方式识别一个子集有什么错: bull[c(1:10) & bull$YearsPro >= 10,]?
EN

Stack Overflow用户
提问于 2017-12-26 13:47:56
回答 2查看 45关注 0票数 0

我想识别一个称为“公牛”的数据帧的子集。子集应该包含数据帧的前10行中的任何大小写,并且具有不小于10的"YearsPro“变量的值。所以我写道:

代码语言:javascript
复制
bull[c(1:10) & bull$YearsPro >= 10,]

但是上面的代码没有给出预期的输出。它还返回一条警告消息,说明“较长的对象长度不是较短对象长度的倍数”。

我想知道我的代码出了什么问题。谢谢!

下面是一个可重现的例子:

代码语言:javascript
复制
bull <- structure(list(Rider = c("Joao Ricardo Vieira", "Matt Triplett", 
                     "J.B. Mauney", "Kaique Pacheco", "Nathan Schaper", "Valdiron de Oliveira", 
                     "Guilherme Marchi", "Silvano Alves", "Reese Cates", "J.W. Harris", 
                     "Stetson Lawrence", "Mike Lee", "Fabiano Vieira", "Cody Nance", 
                     "Ben Jones"), Country = c("BRA", "USA", "USA", "BRA", "USA", 
                                               "BRA", "BRA", "BRA", "USA", "USA", "USA", "USA", "BRA", "USA", 
                                               "AUS"), YearsPro = c(3L, 4L, 10L, 2L, 6L, 9L, 16L, 7L, 9L, 10L, 
                                                                    8L, 14L, 9L, 9L, 17L)), .Names = c("Rider", "Country", "YearsPro"
                                                                    ), row.names = c(NA, 15L), class = "data.frame")
EN

回答 2

Stack Overflow用户

发布于 2017-12-26 13:57:48

据我所知,&运算符用于布尔语句。您的第一个语句'c(1:10)‘是一个索引语句。您可以尝试如下所示:

代码语言:javascript
复制
new_bull <- bull[c(1:10),]
new_bull[new_bull$YearsPro > 10,]

代码语言:javascript
复制
subset(bull[1:10,], YearsPro > 10)
票数 1
EN

Stack Overflow用户

发布于 2017-12-27 00:49:00

老实说,你的问题不是很清楚,因为你没有返回可重复的代码和你的数据集的摘录。无论如何,我建议你使用tidyverse函数的两种方式。这取决于你的目标是什么:

代码语言:javascript
复制
library(tidyverse)


set.seed(1234)
bull <- data.frame(
    id=c(1:20),
    YearsPro=sample(1:30,20,replace=TRUE)
)

# Top 10 rows with YearsPro>10
new_bull <- bull %>%
    top_n(n=10) %>% 
    filter(YearsPro>10)

# Into top 10 rows select records with YearsPro>10
new_bull1 <- bull %>%
    slice(1:10) %>% 
    filter(YearsPro>10)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47974337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档