R语言 数据框架行切分
在这篇文章中,我们将看到如何使用R编程语言对数据框架中的行进行切片。
R语言中的行切片是一种访问数据框架中的行并进一步将其用于操作或方法的方式。这些行可以以任何可能的顺序被访问,也可以存储在其他向量或矩阵中。行切分是一个重要的操作,R编程语言很容易支持。
在R语言中,有多种方法可以对数据框架的行进行切片
- 使用数字索引
- 使用名称索引
- 使用逻辑向量进行索引
方法1.使用数字索引
R中的数字索引可以用来访问数据框中的单个或多个行。要访问的行可以在方括号中使用数据框架的行索引来指定。
dataframe[i,]
其中i是数据框的行号
# creating a data frame
data_frame = data.frame(col1 = c(1:15),
col2 = letters[1:15],
col3 = c(0,1,1,1,0,0,0,0,
0,1,1,0,1,1,0))
print("Data Frame")
print(data_frame)
# accessing a particular row from
# data frame
data_frame4 <- data_frame[4,]
print("Row 4 of data frame")
print(data_frame4)
输出
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
9 9 i 0
10 10 j 1
11 11 k 1
12 12 l 0
13 13 m 1
14 14 n 1
15 15 o 0
[1] "Row 4 of data frame"
col1 col2 col3
4 4 d 1
通过在向量中指定行号,并在方括号中使用它们,也可以在数据框中访问多行数据。
# creating a data frame
data_frame = data.frame(col1 = c(1:15),
col2 = letters[1:15],
col3 = c(0,1,1,1,0,0,0,
0,0,1,1,0,1,1,0))
print("Data Frame")
print(data_frame)
# specifying multiple rows of the
# data frame
row_vec <- c(1,3,5)
# accessing the rows of the data frame
data_frame_mul <- data_frame[row_vec,]
print("Multiple rows of data frame")
print(data_frame_mul)
输出
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
9 9 i 0
10 10 j 1
11 11 k 1
12 12 l 0
13 13 m 1
14 14 n 1
15 15 o 0
[1] "Multiple rows of data frame"
col1 col2 col3
1 1 a 0
3 3 c 1
5 5 e 0
方法2:使用名称索引
也可以通过指定用于识别的行的名称来访问数据框架 的行。
# creating a data frame
data_frame = data.frame(col1 = c(1:8),
col2 = letters[1:8],
col3 = c(0,1,1,1,0,0,0,0))
# assigning row names
rownames(data_frame) <- c("r1","r2","r3","r4",
"r5","r6","r7","r8")
print("Data Frame")
print(data_frame)
# subjecting to a logical condition
data_frame_3 = data_frame["r3",]
print("DataFrame row 3")
print (data_frame_3)
输出
[1] "Data Frame"
col1 col2 col3
r1 1 a 0
r2 2 b 1
r3 3 c 1
r4 4 d 1
r5 5 e 0
r6 6 f 0
r7 7 g 0
r8 8 h 0
[1] "DataFrame row 3"
col1 col2 col3
r3 3 c 1
方法3:使用逻辑向量进行索引
数据框架的行也可以受到逻辑表达式的影响,在逻辑表达式中,评估为真的行索引将在结果输出中返回。
# creating a data frame
data_frame = data.frame(col1 = c(1:8),
col2 = letters[1:8],
col3 = c(0,1,1,1,0,0,0,0))
# assigning row names
rownames(data_frame) <- c("r1","r2","r3","r4","r5","r6")
print("Data Frame")
print(data_frame)
# accessing rows of data frame
# using a logical condition
log_vec = data_frame$col3 == 0
print("Dataframe where col3 values are equivalent to 0")
print(data_frame[log_vec,])
输出
[1] "Data Frame"
col1 col2 col3
1 1 a 0
2 2 b 1
3 3 c 1
4 4 d 1
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0
[1] "Dataframe where row 1 values are %2 "
col1 col2 col3
1 1 a 0
5 5 e 0
6 6 f 0
7 7 g 0
8 8 h 0