Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 无法理解警告_R - Fatal编程技术网

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)]