1

以下のフォームのリストがあります。約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

オンラインで見つけた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 

さらに、各日付のリストに存在する値の数を見つける方法を知っている人はいますか?何か提案をいただければ幸いです。

4

1 に答える 1

6

かなりの数のオプションがあります:

  • スタック(リスト内の等しくない要素でも機能します)

    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
    

値だけをプロットするには、次のようにします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
    

プロットするには、次のことを行うことができます:(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
    
于 2013-03-26T13:54:56.847 に答える