use*_*414 1 split r extract list
我有一个下面的表格列表,大约1400个字符.我想从每个日期/时间中提取值以绘制它们.
$`2012-07-19 22:30:00`
[1] NaN
$`2012-07-19 23:00:00`
[1] 23.91
$`2012-07-19 23:30:00`
[1] 23.83286
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种不同形式的我在网上找到的sapply函数,但每次都得到相同的列表(下面)我无法绘制.如果我可以提取这些值,我应该能够使用na.omit来删除'NaN'.关于如何做到这一点的任何想法?
2012-07-19 22:30:00 2012-07-19 23:00:00 2012-07-19 23:30:00
NaN 23.91000 23.83286
Run Code Online (Sandbox Code Playgroud)
此外,是否有人知道如何查找列表中每个日期有多少值?我很感激任何建议.
有很多选择:
堆栈(与列表中的不等元素一起使用)
L <- list(a=1, b=2, c=3)
stack(L)
# values ind
# 1 1 a
# 2 2 b
# 3 3 c
L <- list(a=1, b=2, c=c(3,4))
stack(L)
# values ind
# 1 1 a
# 2 2 b
# 3 3 c
# 4 4 c
Run Code Online (Sandbox Code Playgroud)要只绘制值,你可以这样做 plot(stack(L)$values)
unlist(使用不相等的列表元素,名称也相应更改)
L <- list(a=1, b=2, c=3)
unlist(L)
# a b c
# 1 2 3
unname(unlist(L)) ## using unname to remove the names
# 1 2 3
L <- list(a=1, b=2, c=c(3,4))
unlist(L)
# a b c1 c2 ## note the automatic name assignment here
# 1 2 3 4
Run Code Online (Sandbox Code Playgroud)要绘图,你可以这样做:( plot(unlist(L))或)等效plot(unname(unlist(L)))
as.data.frame(使用不相等的元素,值被回收,小心!).这是没有用的(至少不是直截了当,如果你要在你的情况下绘图)这么多.
L <- list(a=1, b=2, c=3)
as.data.frame(L)
# a b c
# 1 1 2 3
L <- list(a=1, b=2, c=c(3,4))
as.data.frame(L)
# a b c
# 1 1 2 3
# 1 1 2 4
Run Code Online (Sandbox Code Playgroud)