按列子集数据

时间:2016-01-01 17:38:14

标签: r dataframe

我有这个data.frame:

a <- c(rep("1", 3), rep("2", 3), rep("3",3), rep("4",3), rep("5",3))
b <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
df <-data.frame(a,b)
       a  b
1  1  1
2  1  2
3  1  3
4  2  4
5  2  5
6  2  6
7  3  7
8  3  8
9  3  9
10 4 10
11 4 11
12 4 12
13 5 13
14 5 14
15 5 15

我希望有这样的东西:

a <- c(rep("2", 3), rep("3", 3))
b <- c(4,5,6,7,8,9)

dffinal<-data.frame(a,b)

  a b
1 2 4
2 2 5
3 2 6
4 3 7
5 3 8
6 3 9

我可以使用“子集”功能,但它不起作用

sub <- subset(df,c(2,3) == a )

      a b
    5 2 5
    8 3 8

此命令在“a”列中只占用一行“2”和“3”。

任何帮助?

3 个答案:

答案 0 :(得分:2)

这是怎么回事?

library(dplyr)
df %>% filter(a == 2 | a==3)
  a b
1 2 4
2 2 5
3 2 6
4 3 7
5 3 8
6 3 9

答案 1 :(得分:2)

您将myA:Number; myB:Number; my_bool = true; if (!my_bool){ myB*=-1; } if(myA>45){ my_bool = false; //for every 90 units up switch boolean } ==混淆:

%in%

答案 2 :(得分:1)

我们可以使用d(d-1)/2。我们将'data.frame'转换为'data.table'(data.table),并将'key'设置为'a'列,然后我们将行子集化。

setDT(df)