Как получить первый элемент всех элементов списка в матрице - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть этот набор данных

my_coords <- structure(list(50.7642396, 6.0932425, 50.7289167, 6.1779893, 
    50.7559189, 6.1466953, 50.7980556, 6.0602183, 50.7744281, 
    6.0836151, 50.7743273, 6.1065564, c(50.764164, 50.7689394
    ), c(6.0620818, 6.0684758)), .Dim = c(2L, 7L), .Dimnames = list(
    c("lat", "lng"), NULL))

, который выглядит следующим образом:

    [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     
lat 50.76424 50.72892 50.75592 50.79806 50.77443 50.77433 Numeric,2
lng 6.093242 6.177989 6.146695 6.060218 6.083615 6.106556 Numeric,2

В столбце 7 у меня очень похожие значения, и я хочу получить только одно из них.Желательно первый.

Как это сделать в общем виде?

Я пытался lapply(my_coords , "[[", 1).Однако это не то, что я хочу.Я мог бы собрать значения вручную, но должен быть более разумный способ

Желаемый результат:

    [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]    
lat 50.76424 50.72892 50.75592 50.79806 50.77443 50.77433 50.76416
lng 6.093242 6.177989 6.146695 6.060218 6.083615 6.106556 6.062082

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете извлечь эти значения, используя sapply (аналогично тому, что вы пробовали) и обернуть вывод в matrix

matrix(
  sapply(my_coords , "[[", 1),
  nrow = dim(my_coords)[1],
  dimnames = dimnames(my_coords)
)
#         [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]
#lat 50.764240 50.728917 50.755919 50.798056 50.774428 50.774327 50.764164
#lng  6.093242  6.177989  6.146695  6.060218  6.083615  6.106556  6.062082

Другой вариант, упомянутый @RonakShah в комментариях, будетбыть

my_coords[] <- sapply(my_coords , "[[", 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...