apply()使用向量来索引df行和列

时间:2016-03-17 16:42:56

标签: r dataframe sapply

我有一个向量x ,其中包含数据帧y 的索引,方法如下:

x [1]是第1行数据框的列索引:值37

x [2]是第2行数据框的列索引:值110

等...

> x
[1] 13  5 13  1 13


> y
      1  2   3  4   5  6  7  8  9  10 11 12 13 14 15 16 17 18 19
[1,] 40 49 118 56 110 56 51 47 33 226 33 38 37 41 31 31 31 24 21
[2,] 50 49 118 50 110 51 51 47 32 226 33 35 37 38 31 29 28 27 21
[3,] 50 49 118 50 116 51 42 37 32 224 33 34 35 38 31 26 31 26 22
[4,] 50 53 127 56 116 51 47 47 32 226 35 38 37 41 32 29 32 29 27
[5,] 50 53 127 56 116 56 47 47 36 238 40 42 42 45 38 33 36 30 32

我试图从我的数据框中提取所有相应的值并将其放入一个向量中(参见下面的预期输出)。

我可以通过两个for循环很容易地做到这一点,但真正的数据帧要大得多,并且循环会花费很长时间(!),所以我试图通过 apply() - family 。有人能指出我正确的方向吗?

预期输出,是包含以下内容的向量:

> z
[1] 37 110 35 50 42

这里的数据是dput:

#Dataframe y

y <- structure(c(40L, 50L, 50L, 50L, 50L, 49L, 49L, 49L, 53L, 53L, 
118L, 118L, 118L, 127L, 127L, 56L, 50L, 50L, 56L, 56L, 110L, 
110L, 116L, 116L, 116L, 56L, 51L, 51L, 51L, 56L, 51L, 51L, 42L, 
47L, 47L, 47L, 47L, 37L, 47L, 47L, 33L, 32L, 32L, 32L, 36L, 226L, 
226L, 224L, 226L, 238L, 33L, 33L, 33L, 35L, 40L, 38L, 35L, 34L, 
38L, 42L, 37L, 37L, 35L, 37L, 42L, 41L, 38L, 38L, 41L, 45L, 31L, 
31L, 31L, 32L, 38L, 31L, 29L, 26L, 29L, 33L, 31L, 28L, 31L, 32L, 
36L, 24L, 27L, 26L, 29L, 30L, 21L, 21L, 22L, 27L, 32L), .Dim = c(5L, 
19L), .Dimnames = list(NULL, c("1", "2", "3", "4", "5", "6", 
"7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", 
"18", "19")))

#Vector x
x <- c(13, 5, 13, 1, 13)

0 个答案:

没有答案