在 R Studio(或其他地方)中,是否可以手动更改数据框中的条目,然后获取文档更改步骤的相应代码?
我知道功能
edit
,它可以很好地打开一个编辑窗口。但并没有生成相应的代码。
原因是:我有一个相当大的数据集,需要大量手动编辑。如果我可以直接在代码中记录它们,而不是在 Excel 或其他地方更改数据,那就太好了。但写下来是一项相当大的工作,我想,一定有一个功能可以自动生成此代码。
我非常同意罗兰的评论,但如果这是您必须做的事情,那么记录这些更改至关重要。 您可以通过将编辑后的数据与原始数据进行比较,然后生成可以从原始数据获取新数据的代码来完成此操作。 以下是
mtcars
数据的示例。 首先,确保数据中有一个观察编号,我在下面将其称为 obs
。 如果您将其称为其他名称,则需要修改代码。
data(mtcars)
mtcars$obs <- 1:nrow(mtcars)
# save data as orig before editing
orig <- mtcars
我编辑了数据并将其保存为新数据。 我记录了我在代码块中所做的更改。
new <- edit(mtcars)
# changed mpg for obs 20 to 20
# changed cyl for obs 17 to 4
# changed hp for obs 3 to 150
最后,您可以循环遍历变量名称,识别每个变量中的差异所在,并编写代码将不同的值分配给原始数据集中的适当观察。获得所有重新编码后,您可以使用
cat()
或类似内容将它们写入单独的文件。
recodes <- NULL
nms <- names(mtcars)
for(n in nms){
inds <- which(orig[[n]] != new[[n]])
if(length(inds) > 0){
recodes <- c(recodes, sapply(inds, \(i)paste0("orig$", n, "[",i,"] <- ", new[[n]][i])))
}
}
recodes
#> [1] "orig$mpg[20] <- 20" "orig$cyl[17] <- 4" "orig$hp[3] <- 150"
创建于 2024-12-18,使用 reprex v2.1.0