【发布时间】:2022-01-01 19:38:15
【问题描述】:
我有一个大数据框作为“数据”,让我们考虑一下:
`data <- data.frame(DATE = c(2012, 2012, 2013, 2014, 2014, 2015),
NAME = c("A", "G", "N", "L",'L' "L"),
LCR = c(1, 3, 5, 4, 5, 1),
MWFR=c(0,0,0,0,0,0,1,1),
reg=c(1,1,0,0,1,1,1,1))
我想运行回归,但运行时出现此错误:
pdata <- pdata.frame(data, index = c("NAME", "DATE"))
regmodelfix<- plm(LCR ~ MWFR+reg+ MWFR*reg , model ='within',data=pdata, effect = 'twoways')
error :duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting
我意识到我需要在 NAME 和 DATE 列的每一行中创建唯一的名称,所以我尝试了 make.names
rownames(data) <- make.names(data$NAME, unique = TRUE)
但它不起作用!有什么想法吗?
【问题讨论】:
-
您的问题不可重现,因为您没有包含重现问题的数据集,但您可以尝试先将行名复制到临时列
rownames(data) -> data$tempname,然后删除它们rownames(data) <- NULL. -
我不想删除只是想重命名的行
-
rownames(data) <- NULL不删除行,只删除它们的名称。 -
您的问题与行名(数据)有关,与数据$NAME 或数据$DATE 无关。您可以通过例如重命名 data$NAME 列data$NAME
-
@OttoKässi
rownames(data) <- NULL不会删除行名,它会删除并使用强制转换为字符的连续整数重新创建它们。它保证唯一的行名,就像 OP 想要的那样。rownames(data) <- NULL是解决方案。