小编Hen*_*rik的帖子

按名称删除数据框列

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

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万
查看次数

在R中的相同图中绘制两个图

我想在同一个图中绘制y1和y2.

x  <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot(x, y1, type = "l", col = "red")
plot(x, y2, type = "l", col = "green")
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做的时候,它们并没有被绘制在同一个地块中.

在Matlab中可以做到hold on,但有人知道如何在R中做到这一点吗?

plot r ggplot2 r-faq

529
推荐指数
16
解决办法
124万
查看次数

在同一图表上使用ggplot2将两个变量绘制为线条

这是一个非常新的问题,但我说有这样的数据:

test_data <-
  data.frame(
    var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
    var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
    date = seq(as.Date("2002-01-01"), by="1 month", length.out=100)
  )
Run Code Online (Sandbox Code Playgroud)

如何在x轴上使用?绘制时间序列var0var1同一图表?奖励积分,如果你做和不同的颜色,并且可以包括一个传奇!dateggplot2var0var1

我确信这很简单,但我找不到任何例子.

r graph time-series ggplot2 r-faq

293
推荐指数
5
解决办法
43万
查看次数

找到一周的一天

假设我在R中有一个日期,其格式如下.

   date      
2012-02-01 
2012-02-01
2012-02-02
Run Code Online (Sandbox Code Playgroud)

在R中是否有任何方法可以添加与日期相关的星期几的另一列?数据集非常大,因此手动完成并进行更改是没有意义的.

df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02")) 
Run Code Online (Sandbox Code Playgroud)

因此,在添加日期之后,它最终会看起来像:

   date       day
2012-02-01   Wednesday
2012-02-01   Wednesday
2012-02-02   Thursday
Run Code Online (Sandbox Code Playgroud)

这可能吗?任何人都可以指向我一个允许我这样做的包吗?只是尝试按日期自动生成日期.

r date r-faq

200
推荐指数
6
解决办法
20万
查看次数

如何在data.table中按名称删除列?

为了摆脱a中名为"foo"的列data.frame,我可以这样做:

df <- df[-grep('foo', colnames(df))]

但是,一旦df转换为data.table对象,就无法删除列.

例:

df <- data.frame(id = 1:100, foo = rnorm(100))
df2 <- df[-grep('foo', colnames(df))] # works
df3 <- data.table(df)
df3[-grep('foo', colnames(df3))] 
Run Code Online (Sandbox Code Playgroud)

但是一旦它被转换为一个data.table对象,这就不再适用了.

r data.table

182
推荐指数
4
解决办法
14万
查看次数

在tbl_df中包装时查看整个数据框?

tibble(先前tbl_df)是由R中的dplyr数据帧操作包创建的数据帧的版本.它在意外调用数据帧时防止长表输出.

一旦数据帧被tibble/ 包装tbl_df,是否有一个命令来查看整个数据帧(数据帧的所有行和列)?

如果我使用df[1:100,],我将看到所有100行,但如果我使用df[1:101,],它将只显示前10行.我想轻松显示所有行以快速滚动它们.

是否有dplyr命令来抵消这种情况或解开数据帧的方式?

r options dplyr display

164
推荐指数
4
解决办法
7万
查看次数

如何计算逻辑向量中的TRUE值

在R中,计算TRUE逻辑向量中值的数量的最有效/惯用方法是什么?我可以想到两种方式:

z <- sample(c(TRUE, FALSE), 1000, rep = TRUE)
sum(z)
# [1] 498

table(z)["TRUE"]
# TRUE 
#  498 
Run Code Online (Sandbox Code Playgroud)

你喜欢哪个?还有什么更好的吗?

r

152
推荐指数
5
解决办法
25万
查看次数

按逻辑条件过滤data.frame行

我想data.frame根据逻辑条件从a中过滤行.我们假设我有数据框

   expr_value     cell_type
1    5.345618 bj fibroblast
2    5.195871 bj fibroblast
3    5.247274 bj fibroblast
4    5.929771          hesc
5    5.873096          hesc
6    5.665857          hesc
7    6.791656          hips
8    7.133673          hips
9    7.574058          hips
10   7.208041          hips
11   7.402100          hips
12   7.167792          hips
13   7.156971          hips
14   7.197543          hips
15   7.035404          hips
16   7.269474          hips
17   6.715059          hips
18   7.434339          hips
19   6.997586          hips
20   7.619770          hips
21   7.490749          hips
Run Code Online (Sandbox Code Playgroud)

我想要的是获得一个看起来相同但只有一个cell_type数据的新数据框.例如包含单元格类型"hesc"的子集/选择行:

   expr_value     cell_type
1    5.929771          hesc
2    5.873096          hesc …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

145
推荐指数
6
解决办法
27万
查看次数

使用write.csv时,防止将行名写入文件

命令:

t <- data.frame(v = 5:1, v2 = 9:5)
write.csv(t, "t.csv")
Run Code Online (Sandbox Code Playgroud)

产生的文件:

# "","v","v2"
# "1",5,9
# "2",4,8
# "3",3,7
# "4",2,6
# "5",1,5
Run Code Online (Sandbox Code Playgroud)

如何防止将带有行索引的第一列写入文件?

csv r

143
推荐指数
2
解决办法
14万
查看次数

汇总/汇总每组的多个变量(例如总和,平均值)

从数据帧,是否有聚集(一个简单的方法sum,mean,max同时等c)中多个变量?

以下是一些示例数据:

library(lubridate)
days = 365*2
date = seq(as.Date("2000-01-01"), length = days, by = "day")
year = year(date)
month = month(date)
x1 = cumsum(rnorm(days, 0.05)) 
x2 = cumsum(rnorm(days, 0.05))
df1 = data.frame(date, year, month, x1, x2)
Run Code Online (Sandbox Code Playgroud)

我想同时按年和月汇总数据框中的变量x1x2变量df2.以下代码聚合x1变量,但是是否也可以同时聚合x2变量?

### aggregate variables by year month
df2=aggregate(x1 ~ year+month, data=df1, sum, na.rm=TRUE)
head(df2)
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

aggregate r dataframe r-faq data.table

143
推荐指数
6
解决办法
16万
查看次数

标签 统计

r ×10

r-faq ×5

dataframe ×3

data.table ×2

ggplot2 ×2

aggregate ×1

csv ×1

date ×1

display ×1

dplyr ×1

graph ×1

options ×1

plot ×1

subset ×1

time-series ×1