我在数字列表中观看了在YouTube上重新搜索模式的视频。当我输入命令时,它们不起作用。 R甚至没有给出错误信息。向量是
X <- c(1,2,2,2,3,4,5,6,7,8,9)
然后讲师说使用
temp <- table(as.vector(x))
基本上对列表中的所有唯一值进行排序。 R应该从这个命令1,2,3,4,5,6,7,8,9
给我,但没有任何事情发生,除非教练这样做,这个列表给出了。然后他说要使用命令,
names(temp)[temp--max(temp)]
基本上应该给我这个:1,3,1,1,1,1,1,1,1其中3表示模式为2,因为它在列表中重复3次。我希望尽可能地使用这些命令,因为教师会详细解释它们。我在做错字还是什么?
答案 0 :(得分:0)
你有点困惑。
X <- c(1,2,2,2,3,4,5,6,7,8,9) ## define vector
temp <- table(as.vector(X))
基本上对列表中的所有唯一值进行排序。
这不完全是这个命令的作用(sort(unique(X))
会给出唯一值的排序向量;请注意,在R中,列出和向量是不同种类的对象,最好不要互换使用这些词。 table()
做的是计算每个唯一值的实例数(按排序顺序);另外,as.vector()
是多余的。
R应该从这个命令1,2,3,4,5,6,7,8,9给我,但没有任何事情发生,除非教练这样做了这个列表。
如果将结果分配给变量,则R不会打印任何内容。如果要查看变量的值,请单独键入变量的名称:
temp
你应该看到
1 2 3 4 5 6 7 8 9
1 3 1 1 1 1 1 1 1
第一行是标签(唯一值),第二行是计数。
然后他说使用命令
names(temp)[temp--max(temp)]
基本上应该给我这个:1,3,1,1,1,1,1,1,1其中3表示模式是2因为它是在列表中重复了3次。
没有。您已在temp
中存储了计数序列。你应该输入
names(temp)[temp==max(temp)]
(请注意=
,而不是-
)应打印
[1] "2"
即,这是模式。这里的逻辑是temp==max(temp)
为您提供了一个逻辑向量(TRUE
和FALSE
值的向量),TRUE
的元素只有temp
等于最大值; names(temp)[temp==max(temp)]
选择与temp
值对应的名称向量元素(上面TRUE
打印输出中显示的第一行)...