2017-11-16 20 views
0

私はcsvファイルで提供するサイトのリストの天気変数を吐き出すRのパッケージを使って作業しています。データは複数のリストを含むデータフレームとして提供されるため、各サイトに1つのリストがあります。各サイトの各リストには、9つの変数を含むデータフレームであるサイト名、緯度、経度、高度およびタイルの情報があります。複数のリストを含むネストされたデータフレームを使用可能なデータフレーム/チーフに変換する

library(tidyverse) 
if(!require(devtools)){install.package(devtools)} 
devtools::install_github("khufkens/daymetr") 
library(daymetr) 

「my_sites.csv」下記これは、単にサイト名と経度緯度(何の列見出しでない場合は、次のようになりますが:それはちょうどここにコードを実行することにより、出力を見てみることをおそらく最善です3列)が合計:

str(weather_by_site) 

私はサイトのNAMと9つの気象変数と出力を結合するために探しています:

Alpha 43.29515 -89.29077 
Delta 44.14667 -121.34722 

weather_by_site<-download_daymet_batch(file_location = '/Users/Jay/Desktop/my_sites.csv', 
         start = 2012, 
         end = 2016, 
         internal = TRUE) 

これは、あなたの出力がどのように見えるかの良いアイデアを与えますeと各サイトのタイル。目指すのは、この同じコードを600以上のサイトで実行し、データフレームやチブルフォーマットでデータを分析できるようにすることです。だから、基本的に私は2012年から2016年までのデータを1つのサイトで取得し、すべてのサイトをまとめてバインドします。 purrr使用

+0

私は自分自身で例のcsvを保存することができましたデスクトップに置いて実行するが、インクルードされたデータに問題がある場合、 'download_daymet_batch()'はデルタサイトの座標に関するエラーを返します。下の私の答えはそれが別のデータ問題だと仮定し、ここでの問題は結果データを抽出/整理する方法です。 – crazybilly

答えて

1

、私たちはそれぞれの結果をループし、そのデータフレームの終わりに他の変数を押して、結果からのデータフレームをつかむことができます。

library(dplyr) 
library(purrr) 

# write a function to do pull out the data frame 
# then append the other values 
tidyweather <- function(x) { 

    datadf <- pluck(x, "data") 
    datadf$site  <- x[[1]] 
    datadf$lattitude <- x[[2]] 
    datadf$longitude <- x[[3]] 
    datadf$altitude <- x[[4]] 
    datadf$tile  <- x[[5]] 

    return(datadf) 
} 


weather_df <- weather_by_site %>% 
    # run tidyweather() on each result and return one big data frame 
    map_df(tidyweather) 
関連する問題