Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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,我使用下面的代码来搜索项目列表,并对它们进行分类,如果它们包含我要查找的单词 yo <- c("winter", "winter storm", "downline", "Hurricane", "c", "c") t = data.frame(yo) b <- grep("winter", t$yo) c <- grep("downline", t$yo) d <- grep("Hurricane",t$yo) t$y2[b] = "Winter"

我使用下面的代码来搜索项目列表,并对它们进行分类,如果它们包含我要查找的单词

 yo <- c("winter", "winter storm", "downline", "Hurricane", "c", "c")

 t = data.frame(yo)

 b <- grep("winter", t$yo)
 c <- grep("downline", t$yo)
 d <- grep("Hurricane",t$yo)

 t$y2[b] = "Winter" 
 t$y2[c] = "downline"
 t$y2[d] = "Hurricane"
知道为什么即使grep函数找不到与之匹配的内容,它仍将最后两个列归类为Winter吗?

当您键入t$y2[b]=Winter时,y2列还不存在。但是,由于data.frame的所有列必须具有相同的大小,因此为了填充该列,b c1,2的模式重复三次

您可以键入以下内容以查看发生了什么:

t = data.frame(yo)
t$y2[b] = "Winter"
t
如果输入是一个包含2个元素而不是Winter的向量,我们可以看到这两个元素是重复的:

t = data.frame(yo)
t$y2[b] = c("Winter", "Not Winter")
t
如果t的行数不是索引向量的倍数,则R将引发错误:

t = data.frame(yo)
t$y2[1:5] = "Winter"
t
一个简单的修复方法是在使用y2之前使用默认值初始化y2:

t = data.frame(yo)

b <- grep("winter", t$yo)
c <- grep("downline", t$yo)
d <- grep("Hurricane",t$yo)

t$y2 = ""

t$y2[b] = "Winter" 
t$y2[c] = "downline"
t$y2[d] = "Hurricane"


        yo        y2
1       winter    Winter
2 winter storm    Winter
3     downline  downline
4    Hurricane Hurricane
5            c          
6            c   
键入t$y2[b]=Winter时,y2列还不存在。但是,由于data.frame的所有列必须具有相同的大小,因此为了填充该列,b c1,2的模式重复三次

您可以键入以下内容以查看发生了什么:

t = data.frame(yo)
t$y2[b] = "Winter"
t
如果输入是一个包含2个元素而不是Winter的向量,我们可以看到这两个元素是重复的:

t = data.frame(yo)
t$y2[b] = c("Winter", "Not Winter")
t
如果t的行数不是索引向量的倍数,则R将引发错误:

t = data.frame(yo)
t$y2[1:5] = "Winter"
t
一个简单的修复方法是在使用y2之前使用默认值初始化y2:

t = data.frame(yo)

b <- grep("winter", t$yo)
c <- grep("downline", t$yo)
d <- grep("Hurricane",t$yo)

t$y2 = ""

t$y2[b] = "Winter" 
t$y2[c] = "downline"
t$y2[d] = "Hurricane"


        yo        y2
1       winter    Winter
2 winter storm    Winter
3     downline  downline
4    Hurricane Hurricane
5            c          
6            c   

第一次作业后,看t$y2。一路向下都是冬天。没错,这就是我要问的,如果我用b索引,为什么一路向下都是t$y2。如果你运行b行@steppermotor,这是数据科学专业课程的作业问题吗?@PPC一点也不。我大约10年前毕业于欧洲经委会。我不认为我们知道R的存在,现在我用R进行数据分析,因此我问了这些问题。第一次作业后看t$y2。一路向下都是冬天。没错,这就是我要问的,如果我用b索引,为什么一路向下都是t$y2。如果你运行b行@steppermotor,这是数据科学专业课程的作业问题吗?@PPC一点也不。我大约10年前毕业于欧洲经委会。我不认为我们知道R的存在,现在我使用R进行数据分析,因此我问了这些问题。感谢用户1470500的解释。感谢用户1470500的解释。