r - 从一列中过滤多个变量
问题描述
我有一个问题在这个论坛上找不到答案。我一直在尝试从 R 中的数据集中过滤一列。我正在使用一个包含 7321 行和 28 列的数据集。一栏是关于企业类型的,有四个不同的变量:Wirtschaft、Hochschule、außeruniversitäre Forschung 和 Sonstige。我想将 Wirtschaft 和 außeruniversitäre Forschung 合并到一个名为 private 的新列中,并将 Hochschule 变量过滤到一个名为 public 的新列中。现在,我尝试了以下方法:
首先,我尝试创建一个包含两个“私有变量”的子集:
subdataprivate <- subset(data, typ == "außeruniversitäre Forschung" & typ == "Wirtschaft")
这里的问题是,我得到一个包含 28 个变量的 0 个观察值的子集。当我单独运行代码时,如下所示:
subdataprivate1 <- subset(data, typ == "außeruniversitäre Forschung")
subdataprivate2 <- subset(data, typ == "Wirtschaft")
我确实得到了所有变量的足够观察值(28 个变量的 1559 个观察值和 28 个变量的 3548 个观察值)。问题是,我需要结合这些类型的业务来运行我的分析。
当我尝试使用 dplyr 包过滤数据时,也会出现同样的问题。谁能告诉我我做错了什么?我对 R 和这个论坛还很陌生,所以我提前为我提出这个问题的外行方式道歉。
解决方案
mutate
在不发布您的数据的情况下,我必须使用虚拟数据,但我会使用and做类似的事情if_else
。一旦你有了这个列,你就可以像使用 base R 一样使用 subsetting 或使用filter
from dplyr
。
library(tidyverse)
data <- tibble(school = rep(c("school 1", "school 2", "school 3", "school 4"), 5))
data_transformed <- data %>%
mutate(private_public = if_else(school == "school 1" | school == "school 2",
"private",
"public"))
推荐阅读
- oracle - Oracle Apex 如何在不在会话中的应用程序之间传递页面重定向中的项目值
- github-enterprise - 从 GHE 搜索中排除暂停的用户存储库?
- php - Laravel Livewire,选择其他时添加输入字段(类型=文本)
- sql - 创建 Delta 表时如何指定主键约束
- python - 在 csv 修改文件中使用熊猫?
- biztalk - 通过删除 BizTalk Orchestration 中使用的消息来释放内存?
- reactjs - useEffect 如何对最初未定义的值做出反应?
- javascript - 使用 jQuery.animate 增加一个以上的数字
- javascript - 计算一行中具有相同值的元素的数量?
- replace - 在 azure apim 中的 XML 字符串中用 & 替换 &