📅  最后修改于: 2023-12-03 15:37:28.002000             🧑  作者: Mango
在R中,有时需要从一个DataFrame中提取单列,对于初学者来说可能有些困惑。本篇文章将介绍在R中如何提取单列作为DataFrame。
为了方便演示,我们使用R内置的iris
数据集,这个数据集包含了150个样本的花朵花萼和花瓣的长度和宽度。我们将提取其中的Sepal.Length
列作为DataFrame。
# 加载iris数据集
data(iris)
# 查看iris数据集前6行
head(iris)
输出结果如下:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
$
运算符可以使用 $
运算符提取数据框列的列名。以下是使用 $
运算符获取iris
数据集中的Sepal.Length
列的示例代码:
# 使用$运算符来提取 "Sepal.Length" 列
sepal_length <- iris$Sepal.Length
# 查看sepal_length的前6个值
head(sepal_length)
输出结果如下:
[1] 5.1 4.9 4.7 4.6 5.0 5.4
我们可以看到,sepal_length
变量包含原始数据集中的Sepal.Length
列作为一个向量。
[ ]
运算符另一个获取数据框某一列的方法是使用 [ ]
运算符。在[ ]
括号中,iris
数据框的列名用引号括起来。以下是使用 [ ]
运算符获取iris
数据集中的Sepal.Length
列的示例代码:
# 使用[ ]运算符来提取 "Sepal.Length" 列
sepal_length <- iris['Sepal.Length']
# 查看sepal_length的前6行
head(sepal_length)
输出结果如下:
Sepal.Length
1 5.1
2 4.9
3 4.7
4 4.6
5 5.0
6 5.4
可以看到,sepal_length
变量返回一个新的DataFrame,仅包含iris
数据集中的Sepal.Length
列。
subset()
函数还可以使用R中的subset()
函数来提取数据框的列,该函数将返回以所选列为列名的新数据框。以下是使用subset()
函数获取iris
数据集中的Sepal.Length
列的示例代码:
# 使用subset()函数来提取 "Sepal.Length" 列
sepal_length <- subset(iris, select = Sepal.Length)
# 查看sepal_length的前6行
head(sepal_length)
输出结果如下:
Sepal.Length
1 5.1
2 4.9
3 4.7
4 4.6
5 5.0
6 5.4
与使用 [ ]
运算符相比,subset()
函数可以选择多列,例如可以使用以下代码获取iris
数据集中的Sepal.Length
和Sepal.Width
两列:
# 使用subset()函数来提取 "Sepal.Length" 和 "Sepal.Width" 两列
Sepal_data <- subset(iris, select = c(Sepal.Length, Sepal.Width))
# 查看Sepal_data的前6行
head(Sepal_data)
输出结果如下:
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
以上就是在R中提取单列作为DataFrame的方法。无论使用哪种方法,我们都可以访问所需的单列,并通过将其复制到新向量或新数据框中进行进一步处理。