R语言如何从变量表中挑选变量生成新的变量表
时间: 2024-03-21 13:44:32 浏览: 15
在R语言中,可以使用子集选择符 `[ ]` 和逻辑运算符来从变量表中挑选变量生成新的变量表。
例如,假设有一个变量表 `data` 包含了以下变量:
```
ID Age Gender Income
1 23 Male 50000
2 35 Female 60000
3 28 Male 55000
4 45 Female 70000
```
如果想从这个变量表中挑选 `ID`、`Age` 和 `Income` 三个变量生成新的变量表,可以使用以下代码:
```
new_data <- data[, c("ID", "Age", "Income")]
```
其中,`[ , ]` 表示选择所有行, `, c("ID", "Age", "Income")` 表示选择包含 `ID`、`Age` 和 `Income` 三个变量的列。
生成的新的变量表 `new_data` 将包含以下变量:
```
ID Age Income
1 23 50000
2 35 60000
3 28 55000
4 45 70000
```
可以看到,只有 `ID`、`Age` 和 `Income` 三个变量被保留了下来。
相关问题
R语言如何从变量表中挑选数值型变量生成新的变量表
在R语言中,可以通过判断变量类型来从变量表中挑选数值型变量生成新的变量表。可以使用以下代码:
```
numeric_vars <- sapply(data, is.numeric) # 找出数值型变量
new_data <- data[, numeric_vars] # 选择数值型变量生成新的变量表
```
其中,`sapply` 函数可以对变量表中的每一个变量进行判断,`is.numeric` 函数可以判断一个变量是否为数值型变量。将所有变量的判断结果存储在一个逻辑型向量 `numeric_vars` 中,其中 `TRUE` 表示该变量为数值型,`FALSE` 表示不是数值型。
然后,使用 `[ ]` 子集选择符选择所有行,并且只选择 `numeric_vars` 中为 `TRUE` 的列,即数值型变量,生成新的变量表 `new_data`。
需要注意的是,该方法仅适用于变量表中仅有数值型变量的情况。如果变量表中包含了多个类型的变量,需要先将非数值型变量删除或转换为数值型变量后再使用该方法。
r语言 探索diamonds数据集 1.对diamonds数据集,生成一个新变量d,用于存储每条观测值所在的行数。挑选出id,y,z四个变量,将宽数据转换为长数据:将zz的变量名存为新变量dimension,将xyz的值存为新变量length。转换后的长数据存为xyz long。(5分)2.将xyz_long数据集转换回宽数据syz_wide。宽数据syz_wide包含idz四个变量。(5分) 写代码找出diamonds 中最常见和最不常见的color,即出现次数最多和最少的color。按照下列规则对color列重新定义一一将color中其它颜色的因子合并为“OtherColor”,最常见和最不常见的 color 分别设置为“Common”和“Rare”,将新生成的数据框保存为diamonds color_redefine。最后,再“将Common”设置为diamonds color redefine中color 因子的基准水平(reference level)
以下是针对diamonds数据集的代码,实现了上述要求:
1. 将宽数据转换为长数据:
```R
# 生成新变量d,并将id、y、z挑选出来,存储为新数据框xyz_long
xyz_long <- diamonds %>%
mutate(d = row_number()) %>%
select(id, d, y, z) %>%
pivot_longer(cols = c("y", "z"), names_to = "dimension", values_to = "length")
```
在上述代码中,使用`mutate()`函数生成新变量`d`,然后使用`select()`函数挑选出`id`、`y`、`z`三个变量。接着,使用`pivot_longer()`函数将`y`和`z`两个变量转换为长数据格式,其中`dimension`保存的是变量名,`length`保存的是变量值。
2. 将长数据转换为宽数据:
```R
# 将长数据xyz_long转换为宽数据xyz_wide
xyz_wide <- xyz_long %>%
pivot_wider(names_from = "dimension", values_from = "length")
```
在上述代码中,使用`pivot_wider()`函数将长数据`xyz_long`转换为宽数据格式`xyz_wide`。
3. 对`color`列进行重新定义:
```R
# 找出diamonds中最常见和最不常见的color
common_color <- names(sort(table(diamonds$color), decreasing = TRUE))[1]
rare_color <- names(sort(table(diamonds$color), decreasing = FALSE))[1]
# 将其它颜色的因子合并为"OtherColor"
diamonds$color[diamonds$color != common_color & diamonds$color != rare_color] <- "OtherColor"
# 将新生成的数据框保存为diamonds_color_redefine
diamonds_color_redefine <- diamonds
# 将"Common"设置为diamonds_color_redefine中color因子的基准水平
diamonds_color_redefine$color <- relevel(diamonds_color_redefine$color, ref = "Common")
```
在上述代码中,使用`table()`函数计算出颜色频数表,然后根据频数表确定最常见和最不常见的颜色。接着,使用条件语句将其它颜色的因子合并为"OtherColor"。然后将新生成的数据框保存为`diamonds_color_redefine`。最后,使用`relevel()`函数将"Common"设置为`diamonds_color_redefine`中`color`因子的基准水平。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)