我有这个数据集
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
答案 0 :(得分:3)
您可以使用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)