我不是使用lapply,apply等的专家.所以,我所拥有的是下一个列表
my_list
[[1]]
[1] "40.394081 -3.7083041"
[[2]]
[1] "40.3960251 -3.7116921"
[[3]]
[1] "40.3938449 -3.7071731"
[[4]]
[1] "40.3935099 -3.7121505"
Run Code Online (Sandbox Code Playgroud)
我想在as.numeric每个入口处使用该功能my_list.我的意思是,将列表的每个入口转换为数字,但保留列表的结构.
谢谢.
你可以使用lapply这个:
lapply(my_list, function(x) as.numeric(strsplit(x, ' ')[[1]]))
Run Code Online (Sandbox Code Playgroud)
这里我strsplit用来分割字符串,就在使用之前将其转换为数字as.numeric.lapply将其应用于列表的每个元素并返回结果.
我们可以用 scan
my_list2 <- lapply(my_list, function(x) scan(text=x, what = numeric(), quiet = TRUE))
str(my_list2)
#List of 4
# $ : num [1:2] 40.39 -3.71
# $ : num [1:2] 40.4 -3.71
# $ : num [1:2] 40.39 -3.71
# $ : num [1:2] 40.39 -3.71
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚这是否应该存储为list.如果它可以被存储为data.frame,更好的办法是unlist,用read.table创建一个两列data.frame
read.table(text=unlist(my_list), header = FALSE)
Run Code Online (Sandbox Code Playgroud)