相关疑难解决方法(0)

按名称删除数据框列

我有一些列要从数据框中删除.我知道我们可以使用以下内容单独删除它们:

df$x <- NULL
Run Code Online (Sandbox Code Playgroud)

但我希望用更少的命令来做到这一点.

另外,我知道我可以使用整数索引来删除列,如下所示:

df <- df[ -c(1, 3:6, 12) ]
Run Code Online (Sandbox Code Playgroud)

但我担心我的变量的相对位置可能会改变.

考虑到R的强大程度,我认为可能有一种更好的方法,就是逐一删除每一列.

r dataframe r-faq

807
推荐指数
18
解决办法
133万
查看次数

运算符"[< - "在RStudio和R中

偶然我遇到了"[<-"操作员的奇怪行为.它的行为会有所不同,具体取决于调用的顺序以及我是使用RStudio还是普通的RGui.我将通过一个例子说清楚.

x <- 1:10
"[<-"(x, 1, 111)
x[5] <- 123
Run Code Online (Sandbox Code Playgroud)

据我所知,第一个分配不应该改变x(或者我可能是错的?),而第二个应该这样做.事实上,上述操作的结果是

x
[1]  1  2  3  4  123  6  7  8  9 10
Run Code Online (Sandbox Code Playgroud)

但是,当我们以不同的顺序执行这些操作时,结果会有所不同并且x已经发生变化!意味深长:

x <- 1:10
x[5] <- 123
"[<-"(x, 1, 111)
x
[1] 111   2   3   4   123   6   7   8   9  10
Run Code Online (Sandbox Code Playgroud)

但它只发生在我使用普通R!在RStudio中,两个选项的行为都是相同的.我在两台机器上检查过它(一台用Fedora,一台用Win7),情况看起来完全一样.我知道'功能'版本("[<-"(x..))可能从未使用过,但我很好奇它为什么会发生.谁能解释一下呢?

==========================

编辑:好的,所以从评论我得到的原因是x <- 1:10类型'整数'和更换后x[5] <- 123的'双'.但仍然存在为什么RStudio的行为不同的问题?我重新启动R会话,它不会改变任何东西.

r rstudio

42
推荐指数
1
解决办法
1391
查看次数

根据R中的条件删除数据框列

我必须删除数据框中有超过4000列和180行的列.我想设置的条件是删除数据框中的列:(i)如果列中的值/条目少于两个,则删除列column(ii)如果列中没有两个连续(一个接一个)值,则删除该列.(iii)移除所有值为NA的列.我提供了要删除列的条件.这里的目的不仅仅是找到一个名称列,如"如何删除data.table中的列?".我说明如下:

A       B    C   D  E
0.018  NA    NA  NA NA
0.017  NA    NA  NA NA
0.019  NA    NA  NA NA
0.018  0.034 NA  NA NA
0.018  NA    NA  NA NA
0.015  NA    NA  NA 0.037
0.016  NA    NA  NA 0.031
0.019  NA    0.4 NA 0.025
0.016  0.03  NA  NA 0.035
0.018  NA    NA  NA 0.035
0.017  NA    NA  NA 0.043
0.023  NA    NA  NA 0.040
0.022  NA    NA  NA 0.042
Run Code Online (Sandbox Code Playgroud)

期望的数据帧:

A       E
0.018   NA
0.017   NA
0.019   NA …
Run Code Online (Sandbox Code Playgroud)

r multiple-columns dataframe data.table

3
推荐指数
2
解决办法
8071
查看次数

标签 统计

r ×3

dataframe ×2

data.table ×1

multiple-columns ×1

r-faq ×1

rstudio ×1