2016-06-19 10 views
1

私はlibrary(rtimes)によってNY Times Apiから情報を抽出したいと考えています。 api呼び出しは3のリストを返します。これは、R初心者のために私がアクセスできない方法で必要とする情報に反しているようです。NY Times Apiから情報を引き出す方法は?

install.packages("rtimes") 
require(rtimes) 
# Here I use the Key provides by the New York Times 
api <- "[redacted]" 

# I create an empty vector to append required information to it, 
mylist <- c() 
# The default article api call for "Crisis" 
NY_terror<- as_search(q="Crisis", 
        begin_date = '20110101', 
        end_date ='20110201', 
        fl=c("pub_date","headline","keywords","abstract","_id"), 
        facet_field=c("section_name"), 
        key = api) 

    #Here I extract the data. At least I believe that 
mylist<- append(mylist, unlist(NY_terror$data))  

しかし、私はちょうど1つの必要な列 "pub_date"とfreqで終わります。対応するキーワードの数。私は、flface_fieldで定義されたカラムを持つデータフレームをどのように生成するかを聞かせてもらえますか?

だから、所望の出力は次のようになります。

id section_name   pub_date  headline keywords abstract 

    ...  Politics  2011-01-01  MAMBA  ...  ... 
             posted 
             API Key 
+3

あなたのドンこのようなAPIキーを共有したいと思っています。あなたが投稿を編集/削除してもそれはまだSOに存在します。 – hrbrmstr

+0

はい、それは間違っていました –

+0

@Mamba 'dat 'が初めて作成された(あなたは' append'でそれを使っていました)?あなたは「マイリスト」を意味すると思いますか?私はそれを編集しましたが、これがあなたが意図したものであることを確認してください: 'append(mylist、unlist(NY_terror $ data))' –

答えて

0

私は、これはあなたが開始され、あなたが同じように複数のフィールドを追加し続けることができます取得するために動作するはずだと思う。本当に

b <- list() 
for(i in 1:length(NY_terror$data$docs)){ 
    a <- as.data.frame(as.character(unlist(NY_terror$data$docs[[i]]$byline$person)))[5,1] 
    b <- rbind(b,as.character(a)) 
} 
b <- unlist(b) 
b # first author's last name (if given), can be expanded for multiple authors 

c <- list() 
for(i in 1:length(NY_terror$data$docs)){ 
    a <- as.data.frame(as.character(unlist(NY_terror$data$docs[[i]]$pub_date)))[[1]] 
    c <- rbind(c,as.character(a)) 
} 
c <- unlist(c) 
C# dates 

d <- list() 
for(i in 1:length(NY_terror$data$docs)){ 
    a <- as.character(unlist(NY_terror$data$docs[[i]]$keywords[[1]]$value)) 
    d <- rbind(d,a) 
} 
d <- unlist(d) 
d # keywords 

res <- cbind(b,c,d) 
res[,1] <- gsub("reported", "NA",res[,1]) 
res 

     b   c      d           
[1,] "BOSMAN" "2011-01-30T20:14:04Z" "Financial Crisis Inquiry Commission"  
[2,] "CHAN"  "2011-01-29T09:00:03Z" "Regulation and Deregulation of Industry" 
[3,] NA   "2011-01-25T17:20:36Z" "Financial Crisis Inquiry Commission"  
[4,] "CRAIG"  "2011-01-27T14:17:32Z" "Financial Crisis Inquiry Commission"  
[5,] "MORGENSON" "2011-01-30T00:00:00Z" "Banking and Financial Institutions"  
[6,] "BOSMAN" "2011-01-31T00:00:00Z" "FINANCIAL CRISIS INQUIRY COMMISSION"  
[7,] "CHAN"  "2011-01-25T00:00:00Z" "Subprime Mortgage Crisis"    
[8,] "NA"  "2011-01-28T09:30:54Z" "Securities and Commodities Violations" 
[9,] NA   "2011-01-25T02:15:29Z" "Justice Department"      
[10,] "NOCERA" "2011-01-29T00:00:00Z" "Banking and Financial Institutions"  
関連する問題