私はRで始まり、これで苦労しています...あなたの誰かがこれを行う方法について私にアドバイスできたら...私は基本的に2つのリストを持っています...列名が一致すればRで配列を結合
List1
2013 2014 2015
3 16 6
List2
2010 2011 2012 2013 2014 2015 2016 2017
201.5 268.5 106.0 205.0 392.0 348.0 307.0 64.0
は、私がこのような何かを取得したいと思い、これらの2つのリスト....
List3
2013 2014 2015 2016 2017
205.0 392.0 348.0 0 0
を有するかまたはこれもOKかもしれない
List 3
2013 2014 2015
205.0 392.0 348.0
私はベクトルの作成を試みましたが、年のColnameを渡すことはできません。どのようにして結果を得ることができますか?
事前のおかげで、これは私が使用したコードです...機能の
PREvsCOR=function(){
start<- which(names(List2) == min(names(List1)))
fin <- which(names(List2) == max(names(List1)))
a <- vector(mode="numeric", length = (fin-start)+1)
for (i in 1:length(a)){
a[i] <- List1[i]/List2[start]
start<- start+ 1
}
return(a)
} # fin de PREvsCOR
出力:
[1] 0.01463415 0.04081633 0.01724138
私が使用して列に名前を与えることをしようとした場合:
colnames(precor) <- names(list1)
このエラーが発生します。
Error in
colnames<-
(*tmp*
, value = c("2013", "2014", "2015")) : attempt to set 'colnames' on an object with less than two dimensions
を、あなたは 'list'または' vector'または 'を持っていますかマトリックス? – akrun
私はリストオブジェクトを返すと思う** Tapply **を使ってlist1とlist2を取得します –
あなたの 'List3'では、リストされている*年前の*を省略するつもりですか?私は、 'year'と' value'の2つのカラムを持つdata.frameにこれらを格納するほうが良いかもしれないと思います。そこから、簡単にジョイン(base-R:['merge')(https://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html)、または[ dplyr :: left_join'とfamily(https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html))を使用してセットを管理します。 – r2evans