我在r中有一个名为“Tc”的表,其中包含各种数据,如下所示:
Tc[1:5,]
tFirst tSecond type
1 2013-05-21 23:19:56 2013-05-22 13:33:12 2
2 2013-05-22 13:33:12 2013-05-22 14:29:44 1
3 2013-05-22 14:29:44 2013-05-22 17:02:18 2
4 2013-05-22 17:02:18 2013-05-22 17:13:29 1
5 2013-05-22 17:13:29 2013-05-22 19:42:14 2
我在r中有另一个名为“Df”的数据集,对于Tc中的相同行包含TRUE或FALSE,如下所示:
Df
[1] FALSE TRUE FALSE TRUE TRUE
如何在从Tc创建新表时应用Df,让我们称之为newTc,其中只显示与TRUE关联的行?所以使用我的newTc示例的预期输出将是:
newTc
tFirst tSecond type
2 2013-05-22 13:33:12 2013-05-22 14:29:44 1
4 2013-05-22 17:02:18 2013-05-22 17:13:29 1
5 2013-05-22 17:13:29 2013-05-22 19:42:14 2
Tc和Df包含大约700行,这些示例只是部分。
答案 0 :(得分:1)
您的代码将是
newTc <- Tc[which(Df[1,] == TRUE),]
答案 1 :(得分:1)
要为Tc
矢量TRUE
的{{1}}值的Df
行进行子集,您只需执行
Tc[Df,]
根据您的示例,以下是我假设您的数据设置的方式:
> Tc <- read.table(h=T, text = "tFirst tSecond type
1 '2013-05-21 23:19:56' '2013-05-22 13:33:12' 2
2 '2013-05-22 13:33:12' '2013-05-22 14:29:44' 1
3 '2013-05-22 14:29:44' '2013-05-22 17:02:18' 2
4 '2013-05-22 17:02:18' '2013-05-22 17:13:29' 1
5 '2013-05-22 17:13:29' '2013-05-22 19:42:14' 2")
> Df <- c(FALSE, TRUE, FALSE, TRUE, TRUE)
> Tc[Df,]
# tFirst tSecond type
# 2 2013-05-22 13:33:12 2013-05-22 14:29:44 1
# 4 2013-05-22 17:02:18 2013-05-22 17:13:29 1
# 5 2013-05-22 17:13:29 2013-05-22 19:42:14 2