簡體   English   中英

在數據幀R中復制unique()字符串向量的結果

[英]copy result of unique() string vector in a dataframe R

令我感到困惑的是我認為可以輕松實現的某些事情。 我有一個包含年份,城市和物種列的數據框。

           species      City  Year
80     Landpattedyr  Sisimiut 2007
83     Landpattedyr  Sisimiut 2008
87     Landpattedyr  Sisimiut 2009
721733  Havpattedyr Upernavik 2010
721734  Havpattedyr Upernavik 2011
721735  Havpattedyr Upernavik 2007

我使用了如下獨特的功能

years<-unique(df$year)
city<-unique(df$City)
species<-unique(df$species)

現在我需要基於索引將這些向量中的每個向量的值分配給數據幀行,例如

hunting[1,]$year<-year[i]
hunting[1,]$group<-species[j]
hunting[1,]$city<-city[k]

問題在於只有正確復制了年份,而狩獵df中的城市和物種卻顯示為數字。 我不知道為什么會這樣。 有人可以幫忙嗎?

   year group city   lat   long total
1  2007     6   19 66.93 -53.66  4563
NA 2007     6   20 72.78 -56.15    91
3  2007     6    8 67.01 -50.72   388
4  2007     6   21 70.66 -52.12   280
5  2007     6   14 77.47 -69.23   469
6  2007     6    5 69.22 -51.10  1114

要確定列是因子還是字符,可以使用is.factor(df$City)is.character(df$City)

對於factor列,(唯一)級別存儲在levels屬性中,可以通過以下方式訪問

levels(df$City)

注意:這可能包括向量中不存在的級別,例如,如果某些行已刪除或添加了某些級別。

要檢索factorcharacter向量的唯一元素,可以使用以下方法:

as.character(unique(df$City))

不會返回因子列中不存在的水平。

注意:最后一個命令比unique(as.character(df$City))效率更高,因為轉換是在可能更短的向量上進行的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM