R 如何删除所有重复的代码并只保留每个代码的第一个代码?
这是我的数据R 如何删除所有重复的代码并只保留每个代码的第一个代码?,r,R,这是我的数据 code long lat a 103.0059509 1.736281037 a 103.0055008 1.736822963 a 103.0049973 1.737220049 a 103.0044479 1.737781048 a 103.0041733 1.737781048 b 103.003891 1.738060951 b 103.0022202 1.738055944 b 103.0019455 1.738332033
code long lat
a 103.0059509 1.736281037
a 103.0055008 1.736822963
a 103.0049973 1.737220049
a 103.0044479 1.737781048
a 103.0041733 1.737781048
b 103.003891 1.738060951
b 103.0022202 1.738055944
b 103.0019455 1.738332033
b 103.0013885 1.738332033
b 103.0011139 1.738610029
c 103.0008316 1.738610029
c 103.0005569 1.738891006
c 103.000267 1.738891006
c 103 1.738610029
我希望我的代码只显示第一个代码。没有重复。
而long lat的值保持不变假设'code'列是
字符
类,我们将“
替换为NA
,然后使用NA.locf
将NA值替换为以前的非NA值
library(zoo)
df1$code[df1$code==""] <- NA
df1$code <- na.locf(df1$code)
有关
数据的更多信息。表格可以在中找到,抱歉重复了一个问题。我想不出任何方法来用na替换我的空格。如果我的数据与此相反,该怎么办?@ahmadfikri如果你想从相反的方向执行,请使用na.locf(df1$code,fromLast=TRUE,na.rm=FALSE)
意思是我拥有所有的代码,我希望它与上面的一样data@ahmadfikri对不起,我不知道你的意思。你能再次在@akrun更新你的帖子吗
library(data.table)
setDT(df1)[df1[, .I[2:.N] , code]$V1, code := ""][]
# code long lat
# 1: a 103.0060 1.736281
# 2: 103.0055 1.736823
# 3: 103.0050 1.737220
# 4: 103.0044 1.737781
# 5: 103.0042 1.737781
# 6: b 103.0039 1.738061
# 7: 103.0022 1.738056
# 8: 103.0019 1.738332
# 9: 103.0014 1.738332
#10: 103.0011 1.738610
#11: c 103.0008 1.738610
#12: 103.0006 1.738891
#13: 103.0003 1.738891
#14: 103.0000 1.738610