我有一个数据框df1,以便:
group=c("Group 1", "Group 2", "Group3","Group 1", "Group 2", "Group3")
year=c("2000","2000","2000", "2015", "2015", "2015")
items=c(12, 10, 15, 5, 10, 7)
df1=data.frame(group, year, items)
在"组"栏中,如何用数值替换每个因子?例如,我想替换"第1组" 0,"第2组" 5,"第3组"用3看起来像这样:
group year items
1 0 2000 12
2 5 2000 10
3 3 2000 15
4 0 2015 5
5 5 2015 10
6 3 2015 7
谢谢!
答案 0 :(得分:2)
您可以使用as.integer
transform(df1, group=as.integer(group))
# group year items
# 1 1 2000 12
# 2 2 2000 10
# 3 3 2000 15
# 4 1 2015 5
# 5 2 2015 10
# 6 3 2015 7
为了回应更新的问题,您可以使用因子
的整数来表示键和索引key <- c(0, 5, 3)
transform(df1, group=key[as.integer(group)])
# group year items
# 1 0 2000 12
# 2 5 2000 10
# 3 3 2000 15
# 4 0 2015 5
# 5 5 2015 10
# 6 3 2015 7
正如@SimonG所说,您可以使用factor
及其参数levels
重新排序您的因素,
答案 1 :(得分:1)
使用辅助命名矢量“g”转换矢量“group”:
group <- c("Group 1", "Group 2", "Group3","Group 1", "Group 2", "Group3")
g <- c(0, 5, 3)
names(g) <- c("Group 1", "Group 2", "Group3")
new_group <- g[group]