R 无法理解警告
我想了解为什么下面的代码会给出如图所示的警告消息R 无法理解警告,r,R,我想了解为什么下面的代码会给出如图所示的警告消息 x <- c(1, 2, 3) y <- c(4, 5, 6) df <- data.frame(x, y) rownames(df) <- c("A1", "A2", "B1") df$V <- "Others" df[which(grep(".*1$", rownames(df)) > 0)]$V <- "Primary" 您应该使用df[which(grep(“%1$”,rownames(df))
x <- c(1, 2, 3)
y <- c(4, 5, 6)
df <- data.frame(x, y)
rownames(df) <- c("A1", "A2", "B1")
df$V <- "Others"
df[which(grep(".*1$", rownames(df)) > 0)]$V <- "Primary"
您应该使用
df[which(grep(“%1$”,rownames(df))>0),“V”
或df$V[which(grep(“%1$”,rownames(df))>0)]
df[which(grep(“%1$”,rownames(df))>0),“V”]df
x y V
A1 1 4小学
A2 2 5小学
B1 3 6其他
您的$V
定位已关闭
df[which(grep(".*1$", rownames(df)) > 0)]
上面的行将返回df,而不返回最后一列(V),这意味着当使用
$V
R时,将无法找到第V列,并且您将无法在第V列中分配任何值。这解释了发生了什么,但并不能真正回答问题。这实际上对Phil有所帮助。因此,修复将是df[which(grep(“%1$”,rownames(df))>0),]$V或者只移动$V
,df$V[which(grep(“%1$”,rownames(df))>0)]
。我想我已经习惯了数据。table@Phil它确实回答了这个问题。用户3701522无法理解他为什么会出现这个错误,我想我已经解释了原因。当然。我不知道这个语法。谢谢如果我正确阅读了你的意图,你的代码是错误的。您希望将df$V
的所有行分配为“primary”,其中行名称的最后一个字符为“1”,对吗?如果是这种情况,请不要使用哪个
df$V[grep(“%1$”,rownames(df))]是的,你完全正确。这救了我一天。非常感谢
df[which(grep(".*1$", rownames(df)) > 0), "V"] <- "Primary"
> df
x y V
A1 1 4 Primary
A2 2 5 Primary
B1 3 6 Others
df[which(grep(".*1$", rownames(df)) > 0)]