我有一个data.table,有大量的缺失值.我想通过在data.table中的可用值中添加或减去值来填充这些值.特别要考虑这些数据:
> test = data.table(id=c("A","A","A","A","A","B","B","B","B","B"), x=c(NA,NA,0,NA,NA,NA,NA,0,NA,NA))
> test
id x
1: A NA
2: A NA
3: A 0
4: A NA
5: A NA
6: B NA
7: B NA
8: B 0
9: B NA
10: B NA
Run Code Online (Sandbox Code Playgroud)
我需要一个操作,将其转换为:
id x
1: A -2
2: A -1
3: A 0
4: A 1
5: A 2
6: B -2
7: B -1
8: B 0
9: B 1
10: B 2
Run Code Online (Sandbox Code Playgroud)
基本上是na.locf的一个版本,它增加最后一个值而不是重复它.
我想在散点图中添加一个二次拟合的拟合线,但点的排序在某种程度上搞砸了.
attach(mtcars)
plot(hp, mpg)
fit <- lm(mpg ~ hp + I(hp^2))
summary(fit)
res <- data.frame(cbind(mpg, fitted(fit), hp))
with(res, plot(hp, mpg))
with(res, lines(hp, V2))
Run Code Online (Sandbox Code Playgroud)
这样可以在整个地方绘制线条,而不是通过散点图进行渲染.我确信这很简单,但我有点难过.

我试图想出一种使用R绘制三元热图的方法.我认为ggtern应该可以解决这个问题,但我不知道如何在vanilla ggplot2中执行像stat_bin这样的分箱功能.这是我到目前为止所拥有的:
require(ggplot2)
require(ggtern)
require(MASS)
require(scales)
palette <- c( "#FF9933", "#002C54", "#3375B2", "#CCDDEC", "#BFBFBF", "#000000")
sig <- matrix(c(1,2,3,4),2,2)
data <- data.frame(mvrnorm(n=10000, rep(2, 2), Sigma))
data$X1 <- data$X1/max(data$X1)
data$X2 <- data$X2/max(data$X2)
data$X1[which(data$X1<0)] <- runif(length(data$X1[which(data$X1<0)]))
data$X2[which(data$X2<0)] <- runif(length(data$X2[which(data$X2<0)]))
## Print 2d heatmap
ggplot(data, aes(x=X1, y=X2)) +
stat_bin2d(bins=50) +
scale_fill_gradient2(low=palette[4], mid=palette[3], high=palette[2]) +
xlab("Percentage x") +
ylab("Percentage y") +
scale_y_continuous(labels = percent) +
scale_x_continuous(labels = percent) +
theme_bw() + theme(text = element_text(size = 15))
data$X3 <- with(data, 1-X1-X2)
data <- data[data$X3 >= 0,] …Run Code Online (Sandbox Code Playgroud) 我已经在Windows机器上安装了Spark,并希望通过Spyder使用它.经过一些故障排除后,基础知识似乎有效:
import os
os.environ["SPARK_HOME"] = "D:\Analytics\Spark\spark-1.4.0-bin-hadoop2.6"
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext
spark_config = SparkConf().setMaster("local[8]")
sc = SparkContext(conf=spark_config)
sqlContext = SQLContext(sc)
textFile = sc.textFile("D:\\Analytics\\Spark\\spark-1.4.0-bin-hadoop2.6\\README.md")
textFile.count()
textFile.filter(lambda line: "Spark" in line).count()
sc.stop()
Run Code Online (Sandbox Code Playgroud)
这按预期运行.我现在想要连接到在同一服务器上运行的Postgres9.3数据库.我从这里下载JDBC驱动程序在这里,并把它放在文件夹d:\分析\星火\ spark_jars.然后我创建了一个包含以下行的新文件D:\ Analytics\Spark\spark-1.4.0-bin-hadoop2.6\conf\spark-defaults.conf:
spark.driver.extraClassPath 'D:\\Analytics\\Spark\\spark_jars\\postgresql-9.3-1103.jdbc41.jar'
Run Code Online (Sandbox Code Playgroud)
我运行了以下代码来测试连接
import os
os.environ["SPARK_HOME"] = "D:\Analytics\Spark\spark-1.4.0-bin-hadoop2.6"
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext
spark_config = SparkConf().setMaster("local[8]")
sc = SparkContext(conf=spark_config)
sqlContext = SQLContext(sc)
df = (sqlContext
.load(source="jdbc",
url="jdbc:postgresql://[hostname]/[database]?user=[username]&password=[password]",
dbtable="pubs")
)
sc.stop()
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Py4JJavaError: An error occurred while calling …Run Code Online (Sandbox Code Playgroud) r ×3
apache-spark ×1
binning ×1
data.table ×1
ggtern ×1
heatmap ×1
jar ×1
jdbc ×1
missing-data ×1
plot ×1
points ×1
postgresql ×1
pyspark ×1
regression ×1
ternary ×1
time-series ×1