如何在R函数中返回多个对象?在Java中,我会做一个类,也许Person其中有一些私有变量和封装,也许,height,age,等.
但在R中,我需要传递一组数据.例如,如何使R函数返回字符列表和整数?
我有一个带有列标题的data.frame.
如何从data.frame获取特定行作为列表(列标题作为列表的键)?
具体来说,我的data.frame是
A B C
1 5 4.25 4.5
2 3.5 4 2.5
3 3.25 4 4
4 4.25 4.5 2.25
5 1.5 4.5 3
我希望得到一个相当于的行
> c(a=5, b=4.25, c=4.5)
a b c
5.0 4.25 4.5
Run Code Online (Sandbox Code Playgroud) 我正在阅读Angular 2 "5 Min Quickstart"并且有这样一条线:
import { Component } from '@angular/core';"
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚,@这个导入中的符号是什么?TypeScript文档也没有说明这一点.
这是什么意思?
我目前正在使用FileWriter创建和写入文件.有没有什么方法可以每次都写入同一个文件而不删除其中的内容?
fout = new FileWriter(
"Distribution_" + Double.toString(_lowerBound) + "_" + Double.toString(_highBound) + ".txt");
fileout = new PrintWriter(fout,true);
fileout.print(now.getTime().toString() + ", " + weight + ","+ count +"\n");
fileout.close();
Run Code Online (Sandbox Code Playgroud) 我想加入两个表CUSTMR和DEPRMNT.
我需要的是:LEFT OUTER JOIN连接两个或多个带有子查询的表在LEFT OUTER JOIN中,如下所示:
表:CUSTMR,DEPRMNT
查询为:
SELECT
cs.CUSID
,dp.DEPID
FROM
CUSTMR cs
LEFT OUTER JOIN (
SELECT
dp.DEPID
,dp.DEPNAME
FROM
DEPRMNT dp
WHERE
dp.DEPADDRESS = 'TOKYO'
)
ON (
dp.DEPID = cs.CUSID
AND cs.CUSTNAME = dp.DEPNAME
)
WHERE
cs.CUSID != ''
Run Code Online (Sandbox Code Playgroud)
子查询在这里:
SELECT
dp.DEPID, dp.DEPNAME
FROM
DEPRMNT dp
WHERE
dp.DEPADDRESS = 'TOKYO'
Run Code Online (Sandbox Code Playgroud)
是否可以在LEFT OUTER JOIN中编写这样的子查询?
我在DB2数据库上运行此查询时收到错误.
在这段代码中:
app.directive( 'myCustomDirective', function() {
return {
restrict: 'EA',
scope: { value: '=myCustomDirective', clickable: '&', editing: '=' },
template: '<span ng-click="handleClick()" ng-bind="value"></span>',
...
Run Code Online (Sandbox Code Playgroud)
什么clickable: '&'表示?
当我找到Angular文档时,我无法理解它.它似乎是用catch-22代码编写的,只有已经理解了解释内容的人才能理解.
例如,我发现了这个视频,这显然解释了这件事,但他也可能会说普通话.
我有一个数据框,我想转换为json格式:
我的数据框叫做res1:
library(rjson)
structure(list(id = c(1, 2, 3, 4, 5), value = structure(1:5, .Label = c("server1",
"server2", "server3", "server4", "server5"), class = "factor")), .Names = c("id",
"value"), row.names = c(NA, -5L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
当我做:
toJSON(res1)
Run Code Online (Sandbox Code Playgroud)
我明白了:
{"id":[1,2,3,4,5],"value":["server1","server2","server3","server4","server5"]}
Run Code Online (Sandbox Code Playgroud)
我需要这个json输出是这样的,任何想法?
[{"id":1,"value":"server1"},{"id":2,"value":"server2"},{"id":3,"value":"server3"},{"id":4,"value":"server4"},{"id":5,"value":"server5"}]
Run Code Online (Sandbox Code Playgroud) 我知道R可以最有效地使用向量,并且应该避免循环.我很难教自己用这种方式编写代码.我想了解如何"矢量化"我的代码.下面是为10,000个非唯一的state(st),plan1(p1)和plan2(p2)组合创建10年样本数据的示例:
st<-NULL
p1<-NULL
p2<-NULL
year<-NULL
i<-0
starttime <- Sys.time()
while (i<10000) {
for (years in seq(1991,2000)) {
st<-c(st,sample(c(12,17,24),1,prob=c(20,30,50)))
p1<-c(p1,sample(c(12,17,24),1,prob=c(20,30,50)))
p2<-c(p2,sample(c(12,17,24),1,prob=c(20,30,50)))
year <-c(year,years)
}
i<-i+1
}
Sys.time() - starttime
Run Code Online (Sandbox Code Playgroud)
这需要大约8分钟才能在我的笔记本电脑上运行.我最终得到了4个向量,每个向量都有100,000个值,正如预期的那样.如何使用矢量函数更快地完成此操作?
作为旁注,如果我将上面的代码限制为1000循环,它只需要2秒,但10,000需要8分钟.知道为什么吗?
以下作品:
def spam():
print "spam"
exec(spam.__code__)
Run Code Online (Sandbox Code Playgroud)
垃圾邮件
但如果spam需要参数呢?
def spam(eggs):
print "spam and", eggs
exec(spam.__code__)
Run Code Online (Sandbox Code Playgroud)
TypeError:spam()只需1个参数(给定0)
鉴于,我无法访问函数本身,只能访问代码对象,如何在执行代码对象时将参数传递给代码对象?是否可以使用eval?
编辑:由于大多数读者往往不相信这有用,请参阅以下用例:
我想将小Python函数保存到文件中,以便可以从另一台计算机中调用它们.(这里不用说这个用例严格限制了可能的功能.)pickle函数对象本身不起作用,因为这只保存了定义函数的名称和模块.相反,我可以腌制__code__功能.当我再次取消它时,当然对函数的引用消失了,这就是我无法调用该函数的原因.我只是在运行时没有它.
另一个用例:
我在一个文件中处理几个函数,计算一些数据并将其存储在硬盘上.计算会耗费大量时间,所以我不想每次都执行这些函数,但只有在函数的实现发生变化时才会执行.
我有一个版本的运行整个模块而不是一个功能.它通过查看实现模块的文件的修改时间来工作.但是如果我有许多我不想在单个文件中分离的函数,那么这不是一个选项.