我有一个数据框说df。我从df中提取了5%的样本并创建了一个新的数据帧df1,以便在数据集中进行一些操作。现在我需要将df1附加到df并覆盖现有的df1行,因为它是df的子集。
我尝试使用
提取df中不存在的行 df2 <- subset(df, !(rownames(df) %in% rownames(df1[])))
但这没有用。 任何人都可以帮忙。
答案 0 :(得分:2)
保存过滤器并重复使用
set.seed(357)
xy <- data.frame(col1 = letters[1:5], col2 = runif(5))
col1 col2
1 a 0.10728121
2 b 0.05504568
3 c 0.27987766
4 d 0.22486212
5 e 0.65348521
your.condition <- xy$col1 %in% c("c", "d")
newxy1 <- xy[your.condition, ]
newxy1$col2 <- 1:2
xy[your.condition, "col2"] <- newxy1$col2
xy
col1 col2
1 a 0.10728121
2 b 0.05504568
3 c 1.00000000
4 d 2.00000000
5 e 0.65348521
答案 1 :(得分:1)
您应该始终尝试制作reproducible example,以便其他人轻松帮助您
我试图在mtcars
数据集
#Copied mtcars data into df
df = mtcars
# sample 5 rows from df
df1 = df[sample(1:nrow(df), 5), ]
# did few manipulations in the dataset
df1 = df1 * 2
# overwrite the existing rows of df1 as it is a subset of df
df[rownames(df1), ] <- df1