相关疑难解决方法(0)

向R核心团队提出功能请求

为了提出功能请求,联系R核心团队的推荐方式/工作流程是什么?

通过"功能请求",我不仅仅意味着发出类似"我希望看到功能XY执行XY的东西,所以如果你继续为我实现这个功能会很酷",而是提出实际的代码.

我喜欢R,我愿意贡献,分享代码和所有.然而,有时我发现有点难以弄清楚究竟如何贡献;-)我看了R Project Developer Page并且多次使用r-devel邮件列表.特别是对于后者,我得到的印象是,它不是正确的地方/不希望用实际代码详细说明一个人的功能请求(有时可能不仅仅是两个班轮).所以我想知道是否有一种"更好"或更"系统"的方式来做到这一点.

编辑2011-11-09

我被要求提供一个简短的例子:

我正在广泛使用S4 Reference Classes并为我的对象实现了许多小实用程序功能.一个这样的效用函数是某种"重置"功能:

setRefClass(
    "A", 
    fields=list(a="numeric", b="character"),
    methods=list(
        reset=function(fields=NULL, ...){
            temp <- new("A")
            if(is.null(fields)){
                fields <- names(getRefClass("A")$fields())
            }
            sapply(fields, function(x){
                .self$field(name=x, value=temp$field(x))        
            })
            return(TRUE)
        }
    )
)

x <- new("A", a=1:10, b=letters[1:10])

x$a
x$b
x$reset(fields="a")

x$a
x$b

x$reset()
x$a
x$b
Run Code Online (Sandbox Code Playgroud)

很多时候,这不是世界上最精彩的功能,突然出现在我的"哦,那个缺失"列表中.此外,它可能是一种"单一"功能,开发整个包装有时感觉就像用大锤敲打坚果.

open-source r

49
推荐指数
4
解决办法
1418
查看次数

如何在两个向量之间选择最大对?

假设我在R中有两个向量,定义如下.

a = c(3,3,5)
b = c(2,4,6)
Run Code Online (Sandbox Code Playgroud)

是否有一个函数可以在元素a和元素之间给出成对最大值b,可以在公式中运行?

我试着做,max(a,b)但它没有得到所需的输出.

期望的输出:

(3,4,6)
Run Code Online (Sandbox Code Playgroud)

实际产量:

6
Run Code Online (Sandbox Code Playgroud)

r

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

在data.table中使用`:=`来对R中两列的值求和,忽略NA

我认为这是一个与data.table和:=函数的使用相关的非常简单的问题.我不认为我完全理解这种行为,:=而且经常遇到类似的问题.

这是一些示例数据

 mat <- structure(list(
              col1 = c(NA, 0, -0.015038, 0.003817, -0.011407), 
              col2 = c(0.003745, 0.007463, -0.007407, -0.003731, -0.007491)), 
              .Names = c("col1", "col2"), 
              row.names = c(NA, 10L), 
              class = c("data.table", "data.frame"))
Run Code Online (Sandbox Code Playgroud)

这使

> mat
         col1      col2
 1:        NA  0.003745
 2:  0.000000  0.007463
 3: -0.015038 -0.007407
 4:  0.003817 -0.003731
 5: -0.011407 -0.007491
Run Code Online (Sandbox Code Playgroud)

我想创建一个名为col3的列,它给出col1和col2的总和.如果我使用

mat[,col3 := col1 + col2]

#        col1      col2      col3
#1:        NA  0.003745        NA
#2:  0.000000  0.007463  0.007463
#3: -0.015038 -0.007407 -0.022445
#4:  0.003817 -0.003731 …
Run Code Online (Sandbox Code Playgroud)

r sum data.table

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

添加两个缺少数据的变量

这对于普通R用户来说可能是一个非常简单的问题,但我似乎无法找到解决方案.我想添加两个缺少数据的变量.

x1<-c(NA,3,NA,5) x2<-c(NA,NA,4,3) x3<-x1+x2 x3 [1] NA NA NA 8

但我真正想要的是:

[1] NA 3 4 8
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.我怎样才能保留NA?

r missing-data

5
推荐指数
3
解决办法
2505
查看次数

是否有 R 函数“并行和”?

我想对包含 NA 的向量求和。

例如:

a <- c(5, 3, 1, NA, 2)
b <- c(NA, 1, 2, 1, 7)
Run Code Online (Sandbox Code Playgroud)

预期输出将是:

[1] 5 4 3 1 9
Run Code Online (Sandbox Code Playgroud)

sum在这种情况下不起作用,sum(a, b, na.rm = T)相当于sum(c(a, b), na.rm = T).

+确实有效(即a + b)但不会删除NAs。

您可以使用rowSums(cbind(a, b), na.rm = T),但实际上这可能会导致代码混乱 - 例如,如果向量是data.table.

是否有等价的pmaxfor sum,例如psum(a, b, na.rm = T)?

r

5
推荐指数
1
解决办法
343
查看次数

RowSums NA + NA给出0

我只会理解(对我来说)函数的奇怪行为rowSums.想象一下,我有这个超级简单的数据帧:

a = c(NA, NA,3)
b = c(2,NA,2)
df = data.frame(a,b)
df
   a  b
1 NA  2
2 NA NA
3  3  2
Run Code Online (Sandbox Code Playgroud)

现在我想要第三列,这是另外两列的总和.我不能仅仅 +因为NA:

df$c <- df$a + df$b
df
   a  b  c
1 NA  2 NA
2 NA NA NA
3  3  2  5
Run Code Online (Sandbox Code Playgroud)

但是如果我使用计算为0 rowSums的行NA,而如果只有一行可以NA正常工作:

df$d <- rowSums(df, na.rm=T)
df
   a  b  c  d
1 NA  2 NA  2
2 NA NA NA  0
3  3 …
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
2
解决办法
563
查看次数

标签 统计

r ×6

data.table ×1

missing-data ×1

open-source ×1

sum ×1