小编Ric*_*ven的帖子

NA匹配NA,但不等于NA.为什么?

R语言定义中,NA简要描述了值,其中一部分表示

......尤其FALSE & NAFALSE,TRUE | NATRUE.NA不等于任何其他价值或自身; 测试NA是使用is.na.但是,NA值将与另一个NA值匹配match.

关于声明" NA 不等于任何其他价值或自身 ",


更新:再次修订的问题是

什么是推理,如果有的话,后面 NA 的匹配 NA match,并在语言无处?

对我来说没有意义的是,任何人都不知道(或者不会丢失)的缺失值会匹配同一类型的另一个缺失值.自从我发布这个,我发现了一些example(match)提供一些推理的东西.字符强制改变了它的类型.如果我喜欢的话,我可以把它彻底抹掉.

match(NA, NA)
# [1] 1
match(NA, NA_real_)
# [1] 1
match(NA_character_, NA_real_)
# [1] 1
match(paste(NA), NA)
# [1] NA
gsub("NA", "", NA)
# [1] NA
gsub("NA", "", paste(NA))
# [1] ""
is.na(NA) …
Run Code Online (Sandbox Code Playgroud)

r

13
推荐指数
1
解决办法
9396
查看次数

将数据帧拆分为相等的部分

我有一个示例数据框:

df <- data.frame(x = 1:112, y = runif(112))
Run Code Online (Sandbox Code Playgroud)

有没有办法打印数据框列表,列表的第一部分包含行1:10,第二部分11:20等,直到结束(111:112)?

r

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

过滤R中的数据

我有一个CSV数据文件,我可以使用R加载 read.csv()

有些数据丢失了,所以我想将数据帧缩小到完全由非缺失数据组成的设置,即如果NULL出现在任何地方,我想从过滤后的数据集中排除该列和行.

我知道我可以通过内置的R向量操作相当简单地做到这一点,但我不太确定如何做到这一点?

为了使我的问题更具体一点,这里有一个快速的数据样本,以便您可以看到我想要做的事情.

DocID       Anno1    Anno7  Anno8
1           7        NULL   8
2           8        NULL   3
44          10       2      3
45          6        6      6
46          1        3      4
49          3        8      5
62          4        NULL   9
63          2        NULL   4
67          11       NULL   3
91          NULL     9      7
92          NULL     7      5
93          NULL     8      8
Run Code Online (Sandbox Code Playgroud)

所以考虑到这个输入,我需要一些代码来减少输出.

DocID       Anno8
44          3
45          6
46          4
49          5
Run Code Online (Sandbox Code Playgroud)

作为Anno8唯一具有非NULL数据的列,并且只有四行具有非NULL数据.

filtering r

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

为什么有些基元有字节码而有些没有呢?

我注意到,当我叫args一些的基本功能,字节码显示为好.但在其他原语上,不会出现字节码.例如

args(length)
# function (x) 
# NULL
args(list)
# function (...) 
# NULL
# <bytecode: 0x44a0f38>
Run Code Online (Sandbox Code Playgroud)

这是为什么?

起初我认为这可能与...争论有关,但以下反驳了这一理论.

args(dim)
# function (x) 
# NULL
args(unclass)
# function (x) 
# NULL
# <bytecode: 0x44a0450>
Run Code Online (Sandbox Code Playgroud)

令我困惑的是,字节码只出现在其中一些中,而不出现在其他中.我一直认为所有原语都是特殊的,并且它们都共享相同的"属性"(缺少更好的单词,而不是实际的R属性).

r

12
推荐指数
1
解决办法
189
查看次数

哪些缺席点(`...`)得到处理?

如果我们查看...在其参数列表中有点的函数体,我们通常可以找到接收这些点参数的函数.

例如,我们可以在主体中sapply()看到点参数传递给lapply().

sapply
# function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE) 
# {
#     FUN <- match.fun(FUN)
#     answer <- lapply(X = X, FUN = FUN, ...)
#     ## rest of function body
# }
# <bytecode: 0x000000000e05f0b0>
# environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

然而,lapply()也有圆点...在参数列表中,但没有函数体.

lapply
# function (X, FUN, ...) 
# {
#     FUN <- match.fun(FUN)
#     if (!is.vector(X) || is.object(X)) 
#         X <- as.list(X)
#     .Internal(lapply(X, …
Run Code Online (Sandbox Code Playgroud)

arguments r

12
推荐指数
1
解决办法
153
查看次数

12
推荐指数
1
解决办法
321
查看次数

使用RStudio的Git工具时出错

当试图从RStudio推送到GitHub时,我收到以下错误.

error: unable to read askpass response from 'rpostback-askpass'
fatal: could not read Username for 'https://github.com':
       No such device or address
Run Code Online (Sandbox Code Playgroud)

RStudio的起源是

https://github.com/rmscriven/other.git
Run Code Online (Sandbox Code Playgroud)

什么时候它应该是

https://github.com/rmscriven/saber.git
Run Code Online (Sandbox Code Playgroud)

RStudio不允许我更改版本控制系统的来源.这是它显示的内容:

在此输入图像描述

是否可以从RStudio更改我的GitHub原始URL?

git r rstudio

11
推荐指数
1
解决办法
4503
查看次数

如何列出我的全局环境中的所有数据框?

我正在尝试使用rbind它们.但我需要一份dataframes已列入全球环境的所有内容列表.我该怎么做?

代码我用来导入目录中的20个csv文件.基本上,必须组合成单个数据帧.

temp = list.files(pattern = "*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))
Run Code Online (Sandbox Code Playgroud)

r

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

按顺序拆分矢量

以下向量x包含两个序列1:46:7,其他非连续数字之间.

x <- c(7, 1:4, 6:7, 9)
Run Code Online (Sandbox Code Playgroud)

我想x按顺序拆分,以便结果如下所示.

# [[1]]
# [1] 7
#
# [[2]]
# [1] 1 2 3 4
#
# [[3]]
# [1] 6 7
#
# [[4]]
# [1] 9
Run Code Online (Sandbox Code Playgroud)

有一种快速简单的方法吗?

我试过了

split(x, c(0, diff(x)))
Run Code Online (Sandbox Code Playgroud)

接近,但我不想附加0差异向量是正确的方法.使用findInterval也没有用.

r

11
推荐指数
1
解决办法
976
查看次数

为什么dplyr的mutate()会改变时间格式?

readr用来读取包含时间格式的日期列的数据.我可以使用col_types选项正确读取它readr.

library(dplyr)
library(readr)

sample <- "time,id
2015-03-05 02:28:11,1674
2015-03-03 13:10:59,36749
2015-03-05 07:55:48,NA
2015-03-05 06:13:19,NA
"

mydf <- read_csv(sample, col_types="Ti")
mydf
                 time    id
1 2015-03-05 02:28:11  1674
2 2015-03-03 13:10:59 36749
3 2015-03-05 07:55:48    NA
4 2015-03-05 06:13:19    NA
Run Code Online (Sandbox Code Playgroud)

这很好.但是,如果我想操作此列dplyr,则时间列将丢失其格式.

mydf %>% mutate(time = ifelse(is.na(id), NA, time))
        time    id
1 1425522491  1674
2 1425388259 36749
3         NA    NA
4         NA    NA
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我知道我可以通过将它转换为字符来解决这个问题,但是如果不来回转换它会更方便.

mydf %>% mutate(time = as.character(time)) %>% 
    mutate(time = ifelse(is.na(id), NA, …
Run Code Online (Sandbox Code Playgroud)

r dplyr readr

11
推荐指数
1
解决办法
2413
查看次数

标签 统计

r ×10

arguments ×1

dplyr ×1

filtering ×1

git ×1

readr ×1

rstudio ×1