首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你遇到过的最大的问题是什么?

你遇到过的最大的问题是什么?
EN

Stack Overflow用户
提问于 2009-10-08 00:48:13
回答 18查看 6.4K关注 0票数 58

有没有哪一天真的让你大吃一惊?我想我们都会从分享这些东西中获益。

下面是我的:在列表索引中,my.list[[1]]不是my.list[1]。在R的早期就学会了这一点。

EN

回答 18

Stack Overflow用户

发布于 2010-06-23 22:22:45

[哈德利指出这一点in a comment。]

当使用序列作为迭代的索引时,最好使用seq_along()函数,而不是像1:length(x)这样的函数。

这里我创建了一个向量,两种方法返回相同的东西:

代码语言:javascript
复制
> x <- 1:10
> 1:length(x)
 [1]  1  2  3  4  5  6  7  8  9 10
> seq_along(x)
 [1]  1  2  3  4  5  6  7  8  9 10

现在将向量设为NULL

代码语言:javascript
复制
> x <- NULL
> seq_along(x) # returns an empty integer; good behavior
integer(0)
> 1:length(x) # wraps around and returns a sequence; this is bad
[1] 1 0

这可能会在循环中造成一些混乱:

代码语言:javascript
复制
> for(i in 1:length(x)) print(i)
[1] 1
[1] 0
> for(i in seq_along(x)) print(i)
>
票数 43
EN

Stack Overflow用户

发布于 2009-10-08 02:54:14

加载数据时自动创建系数。您不假思索地将数据框中的列视为字符,这种做法很有效,直到您尝试将值更改为不是级别的值。这将生成一个警告,但会让您的数据框中包含NA ...

当R脚本中出现意外错误时,检查一下不是这些因素造成的。

票数 36
EN

Stack Overflow用户

发布于 2009-10-08 02:02:04

在将矩阵设置为一维的子集中忘记了drop=FALSE参数,从而也丢弃了对象类:

代码语言:javascript
复制
R> X <- matrix(1:4,2)
R> X
     [,1] [,2]
[1,]    1    3
[2,]    2    4
R> class(X)
[1] "matrix"
R> X[,1]
[1] 1 2
R> class(X[,1])
[1] "integer"
R> X[,1, drop=FALSE]
     [,1]
[1,]    1
[2,]    2
R> class(X[,1, drop=FALSE])
[1] "matrix"
R> 
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1535021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档