R语言 如何在R中从数据框架的列表中提取某些列
一个嵌套的列表可以包含其他的列表,或者各种对象、数组、向量或数据帧作为其组成部分。在R编程语言中,每个组件都被映射到一个独特的索引位置。任何元素都可以使用 [ [ ]] 操作符方便地进行索引,它用于引用列表的特定索引。随后, list_name[[index]] ,将获得存储在索引位置的组件。在这种情况下,该方法返回索引位置的数据帧。
然后可以使用df$col-name或者df[[col-index]]来获取提取的数据框架的特定列。捕获,该方法以向量的形式获取所述的列。提到的列应该在范围内,否则会出现错误。默认情况下,索引从1开始。
语法 。
df [[ col-index]]或 df$col-name
例1 :
# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
combined_df <- list(data_frame1,data_frame2)
print ("Dataframe2 Column1")
col21 <- combined_df[[2]][[1]]
print (col21)
输出
[1] "DataFrame1"
col1 col2 col3
1 a 5 TRUE
2 b 6 TRUE
3 c 7 TRUE
4 d 8 TRUE
[1] "DataFrame2"
col1 col2
1 6 A
2 7 B
3 8 C
4 9 D
[1] "Dataframe2 Column1"
[1] 6 7 8 9
list()方法可以包含两个以上的组件,可以堆叠在一起。数据框架的列可以是单个元素或原子元素的向量。
例2 :
# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
# declaring a dataframe
data_frame3 = data.frame(C1 = FALSE, C2 = 1)
print ("DataFrame3")
print (data_frame3)
combined_df <- list(data_frame1,data_frame2,data_frame3)
print ("Dataframe3 Column2")
col32 <- combined_df[[3]][[2]]
print (col32)
输出
[1] "DataFrame1"
col1 col2 col3
1 a 5 TRUE
2 b 6 TRUE
3 c 7 TRUE
4 d 8 TRUE
[1] "DataFrame2"
col1 col2
1 6 A
2 7 B
3 8 C
4 9 D
[1] "DataFrame3"
C1 C2
1 FALSE 1
[1] "Dataframe3 Column2"
[1] 1
列名也可以用$运算符来引用,它在R中被用作索引运算符。
例3 :
# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
# declaring a dataframe
data_frame3 = data.frame(C1 = FALSE, C2 = 1)
print ("DataFrame3")
print (data_frame3)
combined_df <- list(data_frame1,data_frame2,data_frame3)
print ("Dataframe1 Column1")
col11 <- combined_df[[1]]$col1
print (col11)
输出
[1] "DataFrame1"
col1 col2 col3
1 a 5 TRUE
2 b 6 TRUE
3 c 7 TRUE
4 d 8 TRUE
[1] "DataFrame2"
col1 col2
1 6 A
2 7 B
3 8 C
4 9 D
[1] "DataFrame3"
C1 C2
1 FALSE 1
[1] "Dataframe1 Column1"
[1] a b c d
Levels: a b c d