我正在尝试对重复的观察结果进行子集化,这些观察结果在单列中有所不同。在此示例中,我尝试将具有相同ID号但标签号不同的观察结果子集化。我计划创建自己的函数,然后使用lapply函数遍历我的数据集。
到目前为止,我的代码如下:
test.function <- (i) {
if(test.data[i, "id"] == test.data[i-1, "id"] &
test.data[i, "tag.num"] != test.data[i-1, "tag.num"]){
id.tag <- subset(i)
}
}
lapply (test.data, test.function)
关于上述声明,我有几个问题。最重要的是,我不断收到:
Error: unexpected '{' in "test.data <- (i) {"
我真的不确定为什么这种情况会持续发生,任何指导意见将不胜感激。
当前数据集看起来像(999只是一个缺失值指标):
id tag.num
1000 999
1000 A49038483
1100 999
1100 A49294883
1200 999
1200 999
再一次,我只是试图用不同的标签号将相同的ID子集化。在此示例中,我尝试将ID为1000和1100的4个观察结果进行子集化。
另外,我想知道if语句中的语法以及是否有必要指定我的数据集名称。我希望将此功能应用于原始数据集中的多个不同列。如果有一种更通用的方法可以进行设置,然后能够为所有适用的列运行lapply函数,那将是非常有用的知识。任何和所有帮助表示赞赏。
最佳答案
就错误而言,您缺少function
和)
:
test.function <- function(i) {
if(test.data[i, "id"] == test.data[i-1, "id"] &
test.data[i, "tag.num"] != test.data[i-1, "tag.num"]){
id.tag <- subset(i)
}
}
运行没有任何错误。
关于r - 函数语法//泛化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44397433/