如何在R里对数据集进行条件筛选后,赋值给新变量
时间: 2023-07-15 20:15:37 浏览: 47
在R中,可以使用逻辑运算符和条件语句对数据集进行条件筛选,然后将筛选结果赋值给新变量。以下是一个示例代码:
```R
# 创建一个样本数据集
df <- data.frame(
id = c(1, 2, 3, 4, 5),
gender = c("M", "F", "M", "M", "F"),
age = c(25, 32, 19, 45, 27),
income = c(50000, 80000, 25000, 90000, 60000)
)
# 对数据集进行条件筛选
# 选出年龄大于30岁的样本
new_df <- df[df$age > 30, ]
# 输出新的数据集
new_df
```
在上述代码中,我们首先创建了一个包含4个变量的样本数据集df。然后,我们使用逻辑运算符`>`和条件语句`df$age > 30`对数据集进行条件筛选,选出年龄大于30岁的样本,并将筛选结果赋值给新变量new_df。最后,我们输出了新的数据集new_df。
相关问题
sql 一个结果集怎么赋值给变量
在 SQL 中,可以使用以下语句将一个结果集赋值给变量:
```
DECLARE @variableName dataType
SELECT @variableName = columnName
FROM tableName
WHERE condition;
```
其中,`@variableName` 是要赋值的变量名,`dataType` 是变量的数据类型,`columnName` 是结果集中要赋值的列名,`tableName` 是结果集所在的表名,`condition` 是筛选条件。
需要注意的是,如果查询结果集包含多行,则只有最后一行的值会被赋给变量。如果想要将多行结果集赋值给变量,可以考虑使用游标或临时表等方式。
在R的faraway包中有一个名为worldcup的数据集,该数据集是2010年世界杯球员的数据,利用dplyr包的函数完成如下操作: (1)选择Team、Position、Shots变量数据,赋值给worldcup1; (2)将worldcup1按照Team升序排列,并赋值给worldcup2; (3)筛选巴西队(Team为Brazil)所有球员数据,赋值给worldcup3; (4)按Team统计Shots、Passes、Tackles、Saves的总和。
可以使用以下代码完成上述操作:
```R
library(dplyr)
library(faraway)
# (1) 选择Team、Position、Shots变量数据,赋值给worldcup1
worldcup1 <- select(worldcup, Team, Position, Shots)
# (2) 将worldcup1按照Team升序排列,并赋值给worldcup2
worldcup2 <- arrange(worldcup1, Team)
# (3) 筛选巴西队(Team为Brazil)所有球员数据,赋值给worldcup3
worldcup3 <- filter(worldcup, Team == "Brazil")
# (4) 按Team统计Shots、Passes、Tackles、Saves的总和
worldcup4 <- group_by(worldcup, Team) %>%
summarize(Shots = sum(Shots), Passes = sum(Passes), Tackles = sum(Tackles), Saves = sum(Saves))
```
解释一下代码:
- `select()` 函数用于选择数据集中的变量;
- `arrange()` 函数用于按照指定变量升序或降序排列;
- `filter()` 函数用于筛选数据集中符合条件的行;
- `group_by()` 函数用于按照指定变量分组;
- `%>%` 是管道操作符,用于将前一个函数的输出作为后一个函数的输入;
- `summarize()` 函数用于对分组后的变量进行统计计算,如求和、均值等。