小编Dav*_*urg的帖子

你可以在R中传递参考吗?

你能用"R"通过参考吗?例如,在以下代码中:

setClass("MyClass",
    representation(
    name="character"
    ))


instance1 <-new("MyClass",name="Hello1")
instance2 <-new("MyClass",name="Hello2")

array = c(instance1,instance2)

instance1
array

instance1@name="World!"

instance1
array
Run Code Online (Sandbox Code Playgroud)

输出是

> instance1
An object of class “MyClass”
Slot "name":
[1] "World!"

> array
[[1]]
An object of class “MyClass”
Slot "name":
[1] "Hello1"


[[2]]
An object of class “MyClass”
Slot "name":
[1] "Hello2"
Run Code Online (Sandbox Code Playgroud)

但我希望如此

> instance1
An object of class “MyClass”
Slot "name":
[1] "World!"

> array
[[1]]
An object of class “MyClass”
Slot "name":
[1] "World!"


[[2]]
An object of class …
Run Code Online (Sandbox Code Playgroud)

oop r parameter-passing pass-by-reference

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

按组提取对应于变量最小值的行

我希望(1)通过一个变量()分组数据State,(2)在每个组内找到另一个变量(Employees)的最小值行,以及(3)提取整行.

(1)和(2)是简单的单行,我觉得(3)也应该是,但我不能得到它.

这是一个示例数据集:

> data
  State Company Employees
1    AK       A        82
2    AK       B       104
3    AK       C        37
4    AK       D        24
5    RI       E        19
6    RI       F       118
7    RI       G        88
8    RI       H        42

data <- structure(list(State = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 
        2L), .Label = c("AK", "RI"), class = "factor"), Company = structure(1:8, .Label = c("A", 
        "B", "C", "D", "E", "F", "G", "H"), class = "factor"), Employees …
Run Code Online (Sandbox Code Playgroud)

aggregate r dplyr data.table

58
推荐指数
5
解决办法
6万
查看次数

按升序/降序快速排序data.table

我有一个data.table,大约有300万行和40列.我想按照以下sql模拟代码中的组内降序对此表进行排序:

sort by ascending Year, ascending MemberID, descending Month 
Run Code Online (Sandbox Code Playgroud)

在data.table中是否有相同的方法来执行此操作?到目前为止,我必须将其分解为两个步骤:

setkey(X, Year, MemberID)
Run Code Online (Sandbox Code Playgroud)

这非常快,只需几秒钟.

X <- X[,.SD[order(-Month)],by=list(Year, MemberID)]
Run Code Online (Sandbox Code Playgroud)

这个步骤需要更长的时间(5分钟).

更新:有人发表评论X <- X[sort(Year, MemberID, -Month)]并稍后删除.这种方法似乎要快得多:

user  system elapsed 
5.560  11.242  66.236 
Run Code Online (Sandbox Code Playgroud)

我的方法:setkey()然后订购(-Month)

   user  system elapsed 
816.144   9.648 848.798 
Run Code Online (Sandbox Code Playgroud)

我现在的问题是:如果我想按年份,MemberId和sort(Year,MemberID,Month)之后的月份进行汇总,data.table是否会识别排序顺序?

更新2:回应Matthew Dowle:

在使用Year,MemberID和Month的setkey之后,每组仍然有多个记录.我想要的是总结每个小组.我的意思是:如果我使用X [order(Year,MemberID,Month)],求和是否利用data.table的二进制搜索功能:

monthly.X <- X[, lapply(.SD[], sum), by = list(Year, MemberID, Month)]
Run Code Online (Sandbox Code Playgroud)

更新3:Matthew D提出了几种方法.第一种方法的运行时间比order()方法快:

   user  system elapsed 
  7.910   7.750  53.916 
Run Code Online (Sandbox Code Playgroud)

马修:让我感到惊讶的是大部分时间转换月份的标志.没有它,setkey的速度非常快.

performance r data.table

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

R markdown:从代码块访问变量(变量范围)

在R markdown(knitr包)中,我可以访问在代码块中计算的文档正文中的变量吗?

r knitr r-markdown

47
推荐指数
3
解决办法
4万
查看次数

如何在R中使用dplyr执行多个左连接

如何使用R连接多个数据帧dplyr

new <- left_join(x,y, by = "Flag")
Run Code Online (Sandbox Code Playgroud)

这是我用来离开连接x和y的代码,代码不适用于多个连接

new <- left_join(x,y,z by = "Flag")
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

Asp.Net Mvc 4源代码?

MVC4的来源是否可用?我搜索过codeplex和所有常用的地方,但似乎无法找到?MS是否一直保密到最后?他们为什么要那样做?

asp.net-mvc asp.net-mvc-4

38
推荐指数
1
解决办法
3万
查看次数

使用重复标识符传播data.frame/tibble

tidyr的文档表明收集和传播是可传递的,但以下带有"虹膜"数据的示例显示它们不是,但不清楚为什么.任何澄清将不胜感激

iris.df = as.data.frame(iris)
long.iris.df = iris.df %>% gather(key = feature.measure, value = size, -Species)
w.iris.df = long.iris.df %>% spread(key = feature.measure, value = size, -Species)
Run Code Online (Sandbox Code Playgroud)

我希望数据框"w.iris.df"与"iris.df"相同,但收到以下错误:

"错误:行的重复标识符(1,2,3,4,5,6,7,8,9 ..."

我的一般问题是如何在这种数据集上反转"聚集"的应用.

r tidyr

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

什么是R函数的Python pandas等价物,如str(),summary()和head()?

我只知道这个describe()功能.是否还有其他的功能类似str(),summary()head()

python r pandas

37
推荐指数
6
解决办法
3万
查看次数

什么是GLIBC?它是干什么用的?

我正在寻找C标准库的源代码.我的意思是,例如,如何编写cos,abs,printf,scanf,fopen和所有其他标准C函数,我的意思是看他们的源代码.

所以在搜索时,我遇到了GLIBC,但我不知道它到底是什么.它是GNU C库,它包含一些源代码,但它们实际上是什么,它们是标准函数的源代码还是其他东西?它用于什么?

c gnu glibc standard-library

36
推荐指数
3
解决办法
4万
查看次数

R:环顾四周

我需要匹配前面有两个不同元音的'r'.例如,'我们'或'梨'将匹配,但'bar'或'aar'不匹配.我确实设法匹配两个不同的元音,但我仍然不能使...后续'r'的lookbehind 条件().既(?<=...)r不会...\\Kr产生任何结果.有任何想法吗?

x <- c('([aeiou])(?!\\1)(?=(?1))')
y <- c('our','pear','bar','aar')
y[grepl(paste0(x,collapse=''),y,perl=T)]
## [1] "our"  "pear"`
Run Code Online (Sandbox Code Playgroud)

regex backreference r

33
推荐指数
3
解决办法
775
查看次数