1
我開始在R和我在這個掙扎......我希望如果你有人能指點我如何做到這一點...基本上我有兩個列表...結合陣列中的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
有了這兩個列表我想獲得這樣的事情....
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'或' matrix'? – akrun
我用得到列表1和列表2 ** ** Tapply我想返回一個列表對象 –
爲了您'List3',你打算省略年之前* *的上市?我懷疑把它們存儲在一個data.frame中可能會更好:兩個列:'year'和'value'。從那裏你可以很容易地使用連接(base-R:['merge'](https://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html)或[' dplyr :: left_join'和家族](https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html))來管理你的設置。 – r2evans