相关疑难解决方法(0)

我什么时候应该在data.table中使用:=运算符?

data.table对象现在有一个:=运算符.是什么让这个运算符与所有其他赋值运算符不同?此外,它的用途是什么,它的速度有多快,什么时候应该避免?

r data.table colon-equals

84
推荐指数
1
解决办法
1万
查看次数

44
推荐指数
2
解决办法
4259
查看次数

如何从data.frame中删除列?

不是'你怎么......?' 但更多'你怎么......?'

如果你有一个文件有人给你200个列,并且你想将它减少到你需要分析的几个,你怎么去做?一种解决方案是否比另一种解决方

假设我们有一个包含列col1,col2到col200的数据框.如果您只想要1-100然后125-135和150-200,您可以:

dat$col101 <- NULL
dat$col102 <- NULL # etc
Run Code Online (Sandbox Code Playgroud)

要么

dat <- dat[,c("col1","col2",...)]
Run Code Online (Sandbox Code Playgroud)

要么

dat <- dat[,c(1:100,125:135,...)] # shortest probably but I don't like this
Run Code Online (Sandbox Code Playgroud)

要么

dat <- dat[,!names(dat) %in% c("dat101","dat102",...)]
Run Code Online (Sandbox Code Playgroud)

还有什么我想念的吗?我知道这是主观的,但这是你可能会潜入并开始以一种方式进行的那些细节之一,并且当有更有效的方法时会陷入习惯.就像这个问题关于哪些.

编辑:

或者,是否有一种简单的方法来创建可行的列名称向量?name(dat)不打印它们之间的逗号,你需要在上面的代码示例中,所以如果以这种方式打印名称,你到处都有空格,必须手动输入逗号...是否有命令会给你"col1","col2","col3",...作为你的输出,这样你就可以轻松抓住你想要的东西?

r dataframe

38
推荐指数
5
解决办法
11万
查看次数

R自我参考

在RI中发现自己做了很多这样的事情:

adataframe[adataframe$col==something]<-adataframe[adataframe$col==something)]+1

这种方式有点冗长乏味.有没有办法让我
引用我想要改变的对象,比如

adataframe[adataframe$col==something]<-$self+1 
Run Code Online (Sandbox Code Playgroud)

r dataframe self-reference

37
推荐指数
4
解决办法
2803
查看次数

使用ifelse()通过引用不同长度的另一个数据帧来替换一个数据帧中的NA

我已经回顾了以下两篇文章并认为他们可能会回答我的问题,尽管我很难看到如何:

1)条件替换data.frame中的值 2)创建一个函数,用一个data.frame替换来自另一个data.frame的值

话虽如此,我试图通过引用另一个不同(较短)长度的数据帧并从列"B"中提取替换值来替换一个数据帧中的NA,其中每个数据帧中列"A"的值匹配.

为了简单起见,我在下面修改了数据,尽管实际数据中的概念是相同的.仅供参考,在实际的第二个数据框中,"A"列中也没有重复.

这是第一个数据框(df1):

> df1
    B          C  A
1  NA 2012-10-01  0
2  NA 2012-10-01  5
3   4 2012-10-01 10
4  NA 2012-10-01 15
5  NA 2012-10-01 20
6  20 2012-10-01 25
7  NA 2012-10-01  0
8  NA 2012-10-01  5
9   5 2012-10-01 10
10  5 2012-10-01 15

> str(df1)
'data.frame':   10 obs. of  3 variables:
 $ B: num  NA NA 4 NA NA 20 NA NA 5 5
 $ C: Factor w/ …
Run Code Online (Sandbox Code Playgroud)

if-statement r dataframe na

6
推荐指数
2
解决办法
8030
查看次数