R书(Wiley)勘误表?

时间:2014-10-20 03:43:37

标签: r

你好,我正在使用Micheal J. Crawley在R 2nd ed上的书来学习R. 我有一个障碍,我想知道我所用的代码是否有原因,或者是一个应该报告的错误。

从第36页开始,第2.6.1节是我遇到这个小问题的地方。

这是我输入的命令,输出以注释形式给出:

peas <- c(4, 7, 6, 5, 6, 7)
class(peas)
# [1] "numeric"*
length(peas)
# [1] 6*

peas[1:length(peas) %% 2 == 0]
# [1] 7 5 7*

到此为止,它符合本书,并且在尝试提取赔率数时答案是有意义的。

现在,如果有人试图创建一个新的向量&#34;豌豆1&#34;添加了数字4,2和3。 赔率数应为7 5 7和3。

这里是命令序列

peas1 <- c(4, 7, 6, 5, 6, 7, 4, 2, 3)    
length(peas1)
# [1] 9

peas1[1:length(peas1) %% 2 == 0]
#[1] 7 5 7 2 

答案是7 5 7和2 ....现在错了.. 2不是奇数!

再次尝试在向量副本的末尾添加数字9&#34; peas1&#34; as&#34;豌豆2&#34;:

peas2 <- peas1    
peas2[10] <- 9
peas2
# [1] 4 7 6 5 6 7 4 2 3 9*

peas2[1:length(peas2) %% 2 == 0]
# [1] 7 5 7 2 9*

查看结果! 7 5 7 2 9

现在将另外两个数字添加到&#34; peas2&#34;

peas2[11] <- 2
peas2[12] <- 8
length(peas2)
# [1] 12

peas2
# [1] 4 7 6 5 6 7 4 2 3 9 2 8

peas2[1:length(peas2) %% 2 == 0]
# [1] 7 5 7 2 9 8

我们再试一次,这里偶数2和8出现在序列中,根据书及其命令只能给出奇数......

命令有什么不对?[没有理解:-)]或者有错误? [NO]

很好回答你们所有人,我在左边的领域出路了。致谢

4 个答案:

答案 0 :(得分:1)

示例代码peas[1:length(peas) %% 2 == 0]提取了pear数组的偶数索引元素,它与数组元素的值没有任何关系。

答案 1 :(得分:1)

此示例可能对您有所帮助:

> myMatrix <- c(1,2,3,4,5,6,7,8)
> myMatrix[1:length(myMatrix) %% 2 == 0]
[1] 2 4 6 8
> myMatrix <- c(1,3,5,7,9,11,13,15)
> myMatrix[1:length(myMatrix) %% 2 == 0]
[1]  3  7 11 15
> 

所以,基本上,你正在做的是在myMatrix中获得偶数位置,而不是我矩阵的偶数

答案 2 :(得分:0)

如果你真的想要提取奇数,你可以使用:

odd_peas1 <- split(peas1,peas1%%2)

其中第一个元素是奇数的字符串。

答案 3 :(得分:0)

奇数位置和奇数值之间存在区别。如果你想要使用奇数值:

 peas2[ peas2 %% 2 != 0 ]

如果您想要奇数位置:

peas2[ c(TRUE, FALSE) ]  # argument recycling repeats the sequence along full length.

(至少在第一版中,我对Crawley的书并没有特别高的评价。他在第一版中对R语法和对象类型的解释留下了很多这对Rhelp的邮件列表提出了不少问题。在第一次出现失望之后,我没有看到为第二份付出高价的任何价值。)