我的数据集包括CODE,FIRE,CARBON和DEPTH列 CODE列中的数据示例是chic,chiq,lopc,lopq等。
除此之外,我得到了一些信息,其中提到CODES列中的每个值,例如chic属于A,B或C.
所以我想在R中创建一个基于CODE列的新列。因此,当我向R说当CODE例如是chic时,新列中的值在同一行上是A.
我希望有人可以帮助我,
提前致谢!
(我想在这里插入一个列的数据示例,但它没有用,我希望它现在也清楚我要创建的内容)
答案 0 :(得分:0)
您可以尝试:
yourdata$newcolumn<-sapply(as.character(yourdata$CODE),
switch,
"chic"="A","code2"="B","code3"="C")
当然,您需要根据数据调整代码,但是您没有提供很多细节......
示例:
使用yourdata
以下data.frame:
CODE FIRE CARBON DEPTH
1 chic 1 3 -1.3107045
2 code2 1 3 1.0781249
3 code3 1 3 -0.6762211
4 chic 1 3 0.9196376
5 code2 2 4 -0.7161380
6 code2 2 4 -0.5506980
7 chic 2 4 0.3323771
8 chic 2 4 -0.4131832
您获得了新的data.frame yourdata
:
CODE FIRE CARBON DEPTH newcolumn
1 chic 1 3 -1.3107045 A
2 code2 1 3 1.0781249 B
3 code3 1 3 -0.6762211 C
4 chic 1 3 0.9196376 A
5 code2 2 4 -0.7161380 B
6 code2 2 4 -0.5506980 B
7 chic 2 4 0.3323771 A
8 chic 2 4 -0.4131832 A
答案 1 :(得分:0)
您也可以使用(假设您的数据位于数据框df
中)...
df$NEW[df$CODE == "chic"] <- "A"
df$NEW[df$CODE == "chiq"] <- "B"
df
# CODE DEPTH CARBON FIRE NEW
# 1 chic 0 24.2 U A
# 2 chic 10 25.6 U A
# 3 chiq 0 20.3 B B
# 4 chiq 0 50.3 B B
# 5 chiq 10 40.5 B B
# 6 chiq 20 24.2 B B
# 7 polc 0 60.5 U <NA>
# 8 polc 10 10.2 U <NA>
# 9 polq 0 20.5 U <NA>
等...
要一次重新编码多个值,请使用%in%
和一个矢量,例如:
df$NEW[df$CODE %in% c("chic", "chiq")] <- "A"