我很困惑,我认为很容易就会有所作为。 我有一个包含年份,城市和物种列的数据框。
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
答案 0 :(得分:1)
要查明某列是因素还是字符,您可以使用此is.factor(df$City)
或is.character(df$City)
。
如果是factor
列,则(唯一)级别存储在levels
属性中,可以使用
levels(df$City)
注意:这可能包含向量中不存在的级别,例如,如果某些行已被删除或已添加某些级别。
要检索factor
或character
向量的唯一元素,您可以使用:
as.character(unique(df$City))
不将返回因子列中不存在的级别。
注意:最后一个命令比unique(as.character(df$City))
略高,因为转换是在可能更短的向量上计算的。