R - 如何从多个数据框中提取某些行的子集
R - How to subset certain rows out of multiple data frames
我相信这很容易做到,但我在搜索功能中没有找到任何东西。
我的问题是:
我有 3 个不同的数据帧,想 select 每个数据帧中的 1 个特殊行,并将这些行放在一个新的数据帧中。我怎么做?
这是一个例子:
>df1
Station Date Value
1 Station 1 20000608 5.0
2 Station 1 20000609 17.5
3 Station 2 20000610 30.0
>df2
Station Date Value
1 Station 7 20010608 7
2 Station 5 20020609 14
3 Station 1 20060610 21
> df3
Station Date Value
1 Station 5 20050608 2
2 Station 3 20020609 5
3 Station 2 20010610 8
###################
#Code
x1= c("Station 1", "Station 1", "Station 2")
x2= c("20000608", "20000609", "20000610")
x3= seq(5, 30, length=3)
df1 = data.frame(Station=x1, Date=x2, Value=x3)
x1= c("Station 7", "Station 5", "Station 1")
x2= c("20010608", "20020609", "20060610")
x3= seq(7, 21, length=3)
df2 = data.frame(Station=x1, Date=x2, Value=x3)
x1= c("Station 5", "Station 3", "Station 2")
x2= c("20050608", "20020609", "20010610")
x3= seq(2, 8, length=3)
df3 = data.frame(Station=x1, Date=x2, Value=x3)
我想提取 df1 中的第二行、df2 中的第一行和 df3 中的第一行。所有 3 行都应添加到新数据框中。最后应该是这样的:
>dfnew
Station Date Value
2 Station 1 20000609 17.5
1 Station 7 20010608 7
1 Station 5 20050608 2
我当然知道
df1[2,], df2[1,], df3[1,] #or
df[ c(2,), (1,), (1,)]
但这只适用于相同的数据帧。我该如何处理多个数据帧?
您可以通过从所有数据框中选择您想要的行然后使用以下方法将它们绑定在一起来实现:
dfnew <- rbind(df1[2, ], df2[1, ], df3[1, ])
它会给你想要的输出:
Station Date Value
2 Station 1 20000609 17.5
1 Station 7 20010608 7.0
11 Station 5 20050608 2.0
我相信这很容易做到,但我在搜索功能中没有找到任何东西。
我的问题是: 我有 3 个不同的数据帧,想 select 每个数据帧中的 1 个特殊行,并将这些行放在一个新的数据帧中。我怎么做?
这是一个例子:
>df1
Station Date Value
1 Station 1 20000608 5.0
2 Station 1 20000609 17.5
3 Station 2 20000610 30.0
>df2
Station Date Value
1 Station 7 20010608 7
2 Station 5 20020609 14
3 Station 1 20060610 21
> df3
Station Date Value
1 Station 5 20050608 2
2 Station 3 20020609 5
3 Station 2 20010610 8
###################
#Code
x1= c("Station 1", "Station 1", "Station 2")
x2= c("20000608", "20000609", "20000610")
x3= seq(5, 30, length=3)
df1 = data.frame(Station=x1, Date=x2, Value=x3)
x1= c("Station 7", "Station 5", "Station 1")
x2= c("20010608", "20020609", "20060610")
x3= seq(7, 21, length=3)
df2 = data.frame(Station=x1, Date=x2, Value=x3)
x1= c("Station 5", "Station 3", "Station 2")
x2= c("20050608", "20020609", "20010610")
x3= seq(2, 8, length=3)
df3 = data.frame(Station=x1, Date=x2, Value=x3)
我想提取 df1 中的第二行、df2 中的第一行和 df3 中的第一行。所有 3 行都应添加到新数据框中。最后应该是这样的:
>dfnew
Station Date Value
2 Station 1 20000609 17.5
1 Station 7 20010608 7
1 Station 5 20050608 2
我当然知道
df1[2,], df2[1,], df3[1,] #or
df[ c(2,), (1,), (1,)]
但这只适用于相同的数据帧。我该如何处理多个数据帧?
您可以通过从所有数据框中选择您想要的行然后使用以下方法将它们绑定在一起来实现:
dfnew <- rbind(df1[2, ], df2[1, ], df3[1, ])
它会给你想要的输出:
Station Date Value
2 Station 1 20000609 17.5
1 Station 7 20010608 7.0
11 Station 5 20050608 2.0