【问题标题】:Creating a new data frame using existing data, by filtering out specific data通过过滤掉特定数据,使用现有数据创建新数据框
【发布时间】:2021-12-09 10:38:51
【问题描述】:

我在 R 中使用数据虹膜。

我正在尝试为物种“setosa”和“versicolor”的行创建一个仅包含“Sepal.Length”、“Sepal.Width”和“Species”列的数据框,并分配数据框架命名为“df”。 Species 包含 3 种不同的物种,我的新数据框中只需要 2 种类型。 我已经尝试了很多东西,但我仍然输了。有人可以帮忙吗?

library(datasets)
library(dplyr)
data(iris)
summary(iris)
names(iris)

df = iris[,c("Sepal.Length","Sepal.Width")]
dim(df)
            
df = subset(Species, Species== "versicolor")
dim(df)
x = iris$Species == "versicolor"

df <- df[which(iris$Species =="versicolor"& "setosa"  ),]

subset(df, Species %in% c("versicolor", "setosa"))

【问题讨论】:

  • 这一行是错误的:df = subset(Species, Species== "versicolor")。你想要df &lt;- subset(df, Species == "versicolor" | Species == "setosa")

标签: r dataframe filter


【解决方案1】:

这是你想要的吗?

library(dplyr)
df <- iris %>%
  filter(Species != "virginica") %>%
  select(starts_with("S"))

【讨论】:

    【解决方案2】:

    这是一个使用基础 R 中的subset 的选项:

    subset(iris, Species != "vericolor", startsWith(names(iris), "S"))
    

    或者没有subset:

    iris[iris$Species != "vericolor", startsWith(names(iris), "S")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多