我有以下种类的字符串:
A B C Company
XYZ Inc
S & K Co
Run Code Online (Sandbox Code Playgroud)
我想删除这些字符串中仅在1个字母长度的单词之间的空格.例如,第一个字符串中我想删除之间的空隙A B和C,但不会之间C和公司.结果应该是:
ABC Company
XYZ Inc
S&K Co
Run Code Online (Sandbox Code Playgroud)
为此使用正确的正则表达式是什么gsub?
如何修改传递给R中函数的参数?在C++中,这将通过引用传递.
g=4
abc <- function(x) {x<-5}
abc(g)
Run Code Online (Sandbox Code Playgroud)
我想g设置为5.
我想在循环中构建一个数据框,每次使用时添加一个新列cbind.我尝试以下方法:
test <- NULL
df <- data.frame(x=c(1,2,3,4))
test <- cbind(test, df)
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 0, 4
Run Code Online (Sandbox Code Playgroud)
在R中实例化空白数据帧然后在循环中绑定它的正确方法是什么?
谢谢
我有以下样本data.table:
dtb <- data.table(a=sample(1:100,100), b=sample(1:100,100), id=rep(1:10,10))
Run Code Online (Sandbox Code Playgroud)
例如,我想通过id聚合所有列(a和b,尽管它们应该保持分开)colSums.这样做的正确方法是什么?以下不起作用:
dtb[,colSums, by="id"]
Run Code Online (Sandbox Code Playgroud)
这只是一个示例,我的表有很多列,所以我想避免在函数名中指定所有列
我是PyCharm的新手,我想知道它何时保存我的文件.没有指示器(例如在Notepad ++中)显示文件已被修改.如何判断保存和修改后的时间?
我试图用R做固定效应线性回归.我的数据看起来像
dte yr id v1 v2
. . . . .
. . . . .
. . . . .
Run Code Online (Sandbox Code Playgroud)
然后我决定通过制作yr一个因子并使用它来做到这一点lm:
lm(v1 ~ factor(yr) + v2 - 1, data = df)
Run Code Online (Sandbox Code Playgroud)
但是,这似乎耗尽了内存.我的因素有20个级别,df有1400万行,大约需要2GB才能存储,我在22 GB专用于这个过程的机器上运行它.
于是我决定尝试的东西的老式方法:为每一个我多年的虚拟变量t1来t20这样做:
df$t1 <- 1*(df$yr==1)
df$t2 <- 1*(df$yr==2)
df$t3 <- 1*(df$yr==3)
...
Run Code Online (Sandbox Code Playgroud)
并简单地计算:
solve(crossprod(x), crossprod(x,y))
Run Code Online (Sandbox Code Playgroud)
这没有问题,几乎立即产生答案.
我特别好奇当我能够很好地计算系数时,lm会使内存耗尽吗?谢谢.
我有一个xts互相排列的对象列表.我想把merge列表变成一个大xts对象.我这样做的尝试是"
merged_reg_1_min_prices <- do.call(cbind, reg_1_min_prices)
Run Code Online (Sandbox Code Playgroud)
然而,这似乎耗尽了记忆. reg_1_min_prices相互排斥的日子是6,000天1分钟的回报,所以它不是很大.有谁知道怎么解决这个问题?
需要明确的是:reg_1_min_prices包含每天1分钟价格的互斥日,列表中的每个条目都是一个xts对象.
我试图理解该predict.loess函数如何能够在原始数据中不存在的y_hat点处计算新的预测值()x.例如(这是一个简单的例子,我意识到这种类型的例子显然不需要黄土,但它说明了这一点):
x <- 1:10
y <- x^2
mdl <- loess(y ~ x)
predict(mdl, 1.5)
[1] 2.25
Run Code Online (Sandbox Code Playgroud)
loess回归通过在每个处使用多项式来工作x,因此它y_hat在每个处创建预测y.但是,因为没有存储系数,所以在这种情况下的"模型"只是用于预测每个系数的细节y_hat,例如,span或degree.当我这样做时predict(mdl, 1.5),如何predict在这个新的产生价值x?它是在两个最近的现有x值之间进行插值y_hat吗?如果是这样,它的具体细节是什么?
我cloess在线阅读了这些文档但无法找到它的讨论内容.
我希望能够编写一个data.table按组运行回归的函数,然后很好地组织结果.以下是我想要做的一个示例:
require(data.table)
dtb = data.table(y=1:10, x=10:1, z=sample(1:10), weights=1:10, thedate=1:2)
models = c("y ~ x", "y ~ z")
res = lapply(models, function(f) {dtb[,as.list(coef(lm(f, weights=weights, data=.SD))),by=thedate]})
#do more stuff with res
Run Code Online (Sandbox Code Playgroud)
我想将所有这些包装成一个函数,因为它#doe more stuff可能很长.我面临的问题是如何将各种名称传递给data.table?例如,如何传递列名weights?我怎么通过thedate?我想象一个看起来像这样的原型:
myfun = function(dtb, models, weights, dates)
Run Code Online (Sandbox Code Playgroud)
让我说清楚:将公式传递给我的函数不是问题.如果weights我想使用和描述日期的列名称thedate已知,那么我的函数可能看起来像这样:
myfun = function(dtb, models) {
res = lapply(models, function(f) {dtb[,as.list(coef(lm(f, weights=weights, data=.SD))),by=thedate]})
#do more stuff with res
}
Run Code Online (Sandbox Code Playgroud)
但是,对应于thedate和对应的列名称weights是事先未知的.我想将它们传递给我的函数:
#this will not work …Run Code Online (Sandbox Code Playgroud) 我有一个表有两个数字值,称为year和month.我想创建一个具有一个值称为新表ym,而这正串联year和month.这是一个例子:
proc sql;
create table test as
select CONCAT(year, month) as ym from tbl;
run;
Run Code Online (Sandbox Code Playgroud)
CONCAT那里的功能是什么?