相关疑难解决方法(0)

如何通过调用在其名称空间中没有它的函数来找到未附加包中的非导入方法?

R命名空间充当其关联包中所有函数的直接环境.换句话说,当函数bar()从包富调用另一个函数时,R首次评估器搜索中的其他功能<environment: namespace:foo>,那么"imports.foo",<environment: namespace:base>,<environment: R_GlobalEnv>,等下键入返回的搜索列表search().

命名空间的一个很好的方面是它们可以使包像行为更好的公民:未经输出的函数<environment: namespace:foo>和函数imports:foo仅可用:(a)foo中的函数; (b)从foo进口的其他包裹; 或(c)通过完全合格的函数调用,如foo:::bar().

或者直到最近才想到......

行为

这个最近的SO问题突出了一个案例,其中通过调用看似无关的函数找到了一个隐藏在其包的名称空间中的函数:

group <- c("C","F","D","B","A","E")
num <- c(12,11,7,7,2,1)
data <- data.frame(group,num)

## Evaluated **before** attaching 'gmodels' package
T1 <- transform(data, group = reorder(group,-num))

## Evaluated **after** attaching 'gmodels
library(gmodels)
T2 <- transform(data, group = reorder(group,-num))

identical(T1, T2) 
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)

它的直接原因

@Andrie通过指出gmodels从包gdata导入来回答原始问题,包中包含一个 …

namespaces r scoping

29
推荐指数
1
解决办法
894
查看次数

如何使您的排名值在 R data.table 中显示整数(不带小数)

我必须对此数据集中的几个变量排序的数据集进行排名,并按其中的另一个变量分组。当我在 data.table 上使用排名方法时,排名值是小数。我需要它们是没有小数部分的整数。

波纹管,我正在提供我需要的摘要。我正在从本网站的另一个问题中复制其他人的示例(也与排名方法有关)。我发现这个问题的答案很有用,但它仍然没有提供使排名结果成为没有小数的整数的方法。这就是为什么我在这里复制它并将其作为这个问题的起点(因为不允许在一个答案下提出不同的问题)。

我需要根据几个变量进行排名,按一个(或几个变量)分组,然后得到一个没有小数的整数排名。

这是其他人的例子:

他创建了数据表:

library(data.table)

t1 <- data.table (id = c('11', '11', '11', '22','22',
                         '88', '99','44','44', '55'),
                          date = as.Date(c("01-01-2016", 
                                "01-02-2016", 
                                "01-02-2016",
                                "02-01-2016", 
                                "02-02-2016"),
                              format = "%m-%d-%Y"))


setkey(dt1, date)
setkey(dt1, id)
dt1
    id       date

1: 11 2016-01-01

2: 11 2016-01-02

3: 11 2016-01-02

4: 22 2016-02-01

5: 22 2016-02-02

6: 44 2016-01-02

7: 44 2016-02-01

8: 55 2016-02-02

9: 88 2016-01-01

10: 99 2016-01-02
Run Code Online (Sandbox Code Playgroud)

在这里,他根据变量进行排名date并按以下分组id:

dt1[, rank := frank(date), by = list(id)]
dt1 …
Run Code Online (Sandbox Code Playgroud)

r ranking data.table

0
推荐指数
1
解决办法
779
查看次数

标签 统计

r ×2

data.table ×1

namespaces ×1

ranking ×1

scoping ×1