【发布时间】:2021-05-22 04:25:24
【问题描述】:
在我的df中,我定义c('apple', 'banana')和c('banana', 'apple')是一样的,因为水果类型是一样的只是排列不同。
那么,如何删除第一行和第二行,只保留最后一行(wanted_df)。
df = data.frame(fruit1 = c('apple', 'banana', 'fig'),
fruit2 = c('banana', 'apple', 'cherry'))
df
wanted_df = df[3,]
任何帮助将不胜感激!
=============================
我的真实数据有问题。
frames2 丢失了 lag = 2 的行。
我想要像 wanted_frames 这样的数据框。
pollution1 = c('pm2.5', 'pm10', 'so2', 'no2', 'o3', 'co')
pollution2 = c('pm2.5', 'pm10', 'so2', 'no2', 'o3', 'co')
dis = 'n'
lag = 1:2
frames = expand.grid(pollution1 = pollution1,
pollution2 = pollution2,
dis = dis,
lag = lag) %>%
mutate(pollution1 = as.character(pollution1),
pollution2 = as.character(pollution2),
dis = as.character(dis)) %>%
as_tibble() %>%
filter(pollution1 != pollution2)
vec<- with(frames, paste(pmin(pollution1, pollution2), pmax(pollution1, pollution2)))
frames2 = frames[!duplicated(vec), ]
wanted_frames = frames2 %>% mutate(lag = 2) %>% bind_rows(frames2)
【问题讨论】:
-
你能显示预期的输出吗?如果您只是展示了一个手动示例,您希望
frames2的显示方式如何。 -
@cmirian,嗨,最后一个代码
wanted_frames是我的预期输出。 -
pollution1和pollution2是相同的。因此,如果您应用省略重复项的filter,您最终会得到零行。我不完全确定您要达到的目标。