【发布时间】:2014-04-25 21:48:37
【问题描述】:
我对 R 有点陌生,正在尝试使用函数来输出数据帧。我有几个需要重复数据删除的数据框。数据框中的每条记录都有一个索引变量 (RecID) 和一个患者 ID (PatID)。如果数据框中多次列出患者,我想选择记录最大的 RecID。
我希望能够更改此数据框:
PatID RecID
1 1
1 2
2 3
3 4
3 5
4 6
进入这个数据框
PatID RecID
1 2
2 3
3 5
4 6
我可以使用以下代码成功地对数据帧进行重复数据删除。
df <- df[order(df$PatID, -df$RecID),]
df <- df[ !duplicated(df$PatID), ]
我使用此代码创建了一个函数,因此我可以轻松地将我的重复数据删除方案应用于多个数据帧。
dedupit <- function(x) {
x <- x[order(x$PatID, -x$RecID),]
x <- x[ !duplicated(x$PatID), ]
}
但是,当我使用代码dedupit(df) 时,它不会创建具有去重记录的新 df 数据帧。该函数不会输出最终数据帧或任何中间数据帧。有没有办法让函数输出数据帧?
【问题讨论】:
-
你需要从函数中返回。将
return(x)作为函数 defn 的最后一行。 -
啊哈。谢谢。这很有帮助!
标签: r function dataframe output