小编mik*_*sey的帖子

预测() - 也许我不理解它

今天早些时候发布了关于使用该predict功能时遇到的错误.我能够纠正错误,并认为我走在了正确的道路上.

我有一些观察(实际),我有一些我想要推断或预测的数据点.我曾经lm创建过一个模型,然后我尝试使用predict将作为预测输入的实际值.

这段代码都是从我之前的帖子中重复出来的,但这里是:

df <- read.table(text = '
     Quarter Coupon      Total
1   "Dec 06"  25027.072  132450574
2   "Dec 07"  76386.820  194154767
3   "Dec 08"  79622.147  221571135
4   "Dec 09"  74114.416  205880072
5   "Dec 10"  70993.058  188666980
6   "Jun 06"  12048.162  139137919
7   "Jun 07"  46889.369  165276325
8   "Jun 08"  84732.537  207074374
9   "Jun 09"  83240.084  221945162
10  "Jun 10"  81970.143  236954249
11  "Mar 06"   3451.248  116811392
12  "Mar 07"  34201.197  155190418
13 …
Run Code Online (Sandbox Code Playgroud)

r predict lm

58
推荐指数
3
解决办法
18万
查看次数

为什么我在读取数据框时会在列名中获得X.

几个月前我问了一个关于这个问题,我认为答案已经解决了我的问题,但是我再次遇到了问题并且解决方案对我不起作用.

我正在导入CSV:

orders <- read.csv("<file_location>", sep=",", header=T, check.names = FALSE)
Run Code Online (Sandbox Code Playgroud)

这是数据帧的结构:

str(orders)

'data.frame':   3331575 obs. of  2 variables:
 $ OrderID  : num  -2034590217 -2034590216 -2031892773 -2031892767 -2021008573 ...
 $ OrderDate: Factor w/ 402 levels "2010-10-01","2010-10-04",..: 263 263 269 268 301 300 300 300 300 300 ...
Run Code Online (Sandbox Code Playgroud)

如果我length在第一列OrderID上运行命令,我会得到:

length(orders$OrderID)
[1] 0
Run Code Online (Sandbox Code Playgroud)

如果我运行length在OrderDate上,它会正确返回:

length(orders$OrderDate)
[1] 3331575
Run Code Online (Sandbox Code Playgroud)

这是复制/粘贴headCSV.

OrderID,OrderDate
-2034590217,2011-10-14
-2034590216,2011-10-14
-2031892773,2011-10-24
-2031892767,2011-10-21
-2021008573,2011-12-08
-2021008572,2011-12-07
-2021008571,2011-12-07
-2021008570,2011-12-07
-2021008569,2011-12-07
Run Code Online (Sandbox Code Playgroud)

现在,如果我重新运行read.csv …

r illegal-characters dataframe read.csv

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

计算Python/Pandas中两行之间的差异

在python中,如何引用前一行并针对它进行计算?具体来说,我有工作dataframespandas-我有一个数据帧充满看起来像这样的股票价格信息:

           Date   Close  Adj Close
251  2011-01-03  147.48     143.25
250  2011-01-04  147.64     143.41
249  2011-01-05  147.05     142.83
248  2011-01-06  148.66     144.40
247  2011-01-07  147.93     143.69
Run Code Online (Sandbox Code Playgroud)

以下是我创建此数据框的方法:

import pandas

url = 'http://ichart.finance.yahoo.com/table.csv?s=IBM&a=00&b=1&c=2011&d=11&e=31&f=2011&g=d&ignore=.csv'
data = data = pandas.read_csv(url)

## now I sorted the data frame ascending by date 
data = data.sort(columns='Date')
Run Code Online (Sandbox Code Playgroud)

从第2行开始,或者在这种情况下,我猜它是250(PS - 是索引吗?),我想计算2011-01-03和2011-01-04之间的差异,对于这个数据框中的每个条目.我认为合适的方法是编写一个获取当前行的函数,然后计算出前一行,并计算它们之间的差异,使用pandas apply函数来更新数据帧的值.

这是正确的方法吗?如果是这样,我应该使用索引来确定差异吗?(注意 - 我仍处于python初学者模式,因此索引可能不是正确的术语,甚至也不是正确的实现方式)

python pandas

46
推荐指数
2
解决办法
6万
查看次数

在ggplot2中格式化X轴上的日期

我有一个非常非常艰难的时间让x轴看起来正确我的图形.

这是我的数据(通过生成dput()):

df <- structure(list(Month = structure(1:12, .Label = c("2011-07-31", "2011-08-31", "2011-09-30", "2011-10-31", "2011-11-30", "2011-12-31", "2012-01-31", "2012-02-29", "2012-03-31", "2012-04-30", "2012-05-31", "2012-06-30"), class = "factor"), AvgVisits = c(6.98655104580674,7.66045407330464, 7.69761337479304, 7.54387561322994, 7.24483848458728, 6.32001400498928, 6.66794871794872, 7.207780853854, 7.60281201431308, 6.70113837397123, 6.57634103019538, 6.75321935568936)), .Names = c("Month","AvgVisits"), row.names = c(NA, -12L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

这是我想要绘制的图表:

ggplot(df, aes(x = Month, y = AvgVisits)) + 
  geom_bar() +
  theme_bw() +
  labs(x = "Month", y = "Average Visits per User")
Run Code Online (Sandbox Code Playgroud)

该图表工作正常 - 但是,如果我想调整日期的格式,我相信我应该添加这个: scale_x_date(labels = date_format("%m-%Y"))

我正试图让日期标签为'MMM-YYYY'

ggplot(df, aes(x …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

45
推荐指数
2
解决办法
8万
查看次数

R:数字'envir'arg不是长度为1的预测()

我试图通过将变量传递到模型中来预测R使用predict()函数的值.

我收到以下错误:

Error in eval(predvars, data, env) : 
  numeric 'envir' arg not of length one
Run Code Online (Sandbox Code Playgroud)

这是我的data frame名字df:

df <- read.table(text = '
     Quarter Coupon      Total
1   "Dec 06"  25027.072  132450574
2   "Dec 07"  76386.820  194154767
3   "Dec 08"  79622.147  221571135
4   "Dec 09"  74114.416  205880072
5   "Dec 10"  70993.058  188666980
6   "Jun 06"  12048.162  139137919
7   "Jun 07"  46889.369  165276325
8   "Jun 08"  84732.537  207074374
9   "Jun 09"  83240.084  221945162
10  "Jun 10"  81970.143 …
Run Code Online (Sandbox Code Playgroud)

r predict lm

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

在RedShift中声明一个变量

SQL Server 能够声明一个变量,然后在查询中调用该变量,如下所示:

DECLARE @StartDate date;
SET @StartDate = '2015-01-01';

SELECT *
FROM Orders
WHERE OrderDate >= @StartDate;
Run Code Online (Sandbox Code Playgroud)

这个功能在亚马逊的RedShift中有效吗?从文档中看,它看起来DECLARE仅用于游标. SET看起来是我正在寻找的功能,但当我尝试使用它时,我收到一个错误.

set session StartDate = '2015-01-01';
 [Error Code: 500310, SQL State: 42704]  [Amazon](500310) Invalid operation: unrecognized configuration parameter "startdate";
Run Code Online (Sandbox Code Playgroud)

有可能这样做RedShift吗?

amazon-redshift

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

R-为什么将X添加到数据框中的变量名称中?

当我使用read.csv()函数R加载数据时,我经常发现X已添加到变量名中.我想我总是在第一个变量中看到它,但我可能是错的.

起初,我认为这R可能是因为我在变量名称的开头有一个空格 - 我没有.

其次,我曾经读过某个地方,如果你有一个以数字开头的变量,或者是一个非常短的变量名,R就会添加X.变量名是全文,这个变量名的长度是12个字符,所以它不短.

现在,这纯粹是一种烦恼.我可以重命名该列,但它确实添加了一个步骤,虽然是一个小步骤.

有没有办法阻止流氓X渗透我的数据框?

这是我的原始代码:

df <- read.csv("/file/location.filecsv", header=T, sep=",")
Run Code Online (Sandbox Code Playgroud)

这是有问题的变量:

str(orders)
'data.frame':   2620276 obs. of  26 variables:
 $ X.OrderDetailID    : Factor w/ 2620193 levels "(2620182 row(s) affected)",..: 105845
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

使用CUT和Quartile在R函数中生成中断

根据之前的一些很好的建议,我现在正在编写我的第二个R函数并使用类似的逻辑.但是,我正在尝试自动化一点,并且可能为了自己的利益而变得过于聪明.

我想根据订单数量将客户分成五分位数.这是我的代码:

# sample data
clientID <- round(runif(200,min=2000, max=3000),0)
orders <- round(runif(200,min=1, max=50),0)

df <- df <- data.frame(cbind(clientID,orders))

#function to break them into quintiles
ApplyQuintiles <- function(x) {
  cut(x, breaks=c(quantile(df$orders, probs = seq(0, 1, by = 0.20))), 
      labels=c("0-20","20-40","40-60","60-80","80-100"))
}

#Add the quintile to the dataframe
df$Quintile <- sapply(df$orders, ApplyQuintiles)
Run Code Online (Sandbox Code Playgroud)

table(df$Quintile)

0-20   20-40   40-60    60-80   80-100 
40     39      44       38      36
Run Code Online (Sandbox Code Playgroud)

你会在这里看到,在我的样本数据中,我创建了200个观察值,但只列出了197个table.剩下的3个是NA

现在,有一些对于五分位数具有"NA"的clientID.看起来如果他们处于最低休息时间,在这种情况下为1,那么他们就不会被包括在切割功能中.

有没有办法cut包容所有观察?

cut r

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

从RStudio推送到Github

当你使用RStudio时,你的git工作流程是什么样的?

我想开始使用github来控制我的脚本.我知道你可以使用命令行/终端来推送存储库,但是无法找到git的包.有什么建议吗?

或者,我可以使用system命令:system("git push")

任何人都可以建议一个更好/更优雅的方式来做到这一点?

git r github rstudio

16
推荐指数
1
解决办法
3371
查看次数

16
推荐指数
2
解决办法
8891
查看次数