我试图绘制一些圆圈,我有点希望它们会与某些点交叉,唉...
library(maptools)
library(plotrix)
xy <- matrix(runif(20, min = -100, max = 100), ncol = 2)
distance <- spDistsN1(xy, xy[1, ])
plot(0,0, xlim = c(-100, 100), ylim = c(-100, 100), type = "n")
points(data.frame(xy))
points(xy[1, 1], xy[1, 2], pch = 16)
draw.circle(xy[1, 1], xy[1, 2], radius = distance)
Run Code Online (Sandbox Code Playgroud)
上面的代码执行以下操作:

我在R中的数据框中有一年的小时数据:
> str(df.MHwind_load) # compactly displays structure of data frame
'data.frame': 8760 obs. of 6 variables:
$ Date : Factor w/ 365 levels "2010-04-01","2010-04-02",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Time..HRs. : int 1 2 3 4 5 6 7 8 9 10 ...
$ Hour.of.Year : int 1 2 3 4 5 6 7 8 9 10 ...
$ Wind.MW : int 375 492 483 476 486 512 421 396 456 453 ... …Run Code Online (Sandbox Code Playgroud) 我想找到符合特定条件的矢量元素的所有组合.函数expand.grid返回所有可能的组合,而不检查特定条件.这是可能使用expand.grid功能后,测试特定条件,但在某些情况下可能的组合的数量太大与expand.grid生成它们.因此,有一个功能允许我在生成所有可能的组合时检查条件.
这是问题的简化版本:
A <- seq.int(12, from=0, by=1)*15
B <- seq.int(27, from=0, by=1)*23
C <- seq.int(18, from=0, by=1)*18
D <- seq.int(33, from=0, by=1)*10
out<-expand.grid(A,B,C,D) #out is a dataframe with 235144 x 4 as dimensions
idx<-which(rowSums(out)<=400 & rowSums(out)>=300) #Only a small fraction of 'out' is needed
results <- out(idx,)
Run Code Online (Sandbox Code Playgroud) 假设我有两个数据帧:
df1 <- data.frame(matrix(rnorm(10*10),ncol=10))
df2 <- data.frame(matrix(rnorm(10*10),ncol=10))
colnames(df1) <- 1:10
colnames(df2) <- 11:20
Run Code Online (Sandbox Code Playgroud)
如何使用merge到cbind这些(我已经知道了cbind,但我很感兴趣的应用merge点击这里).
我想替换传说(指南)中的'子弹' geom_text.现在它是一个倾斜的a,但我想要一个大的胖圈或正方形或任何其他形状,将强调颜色(更多).
library(ggplot2)
majdf <- data.frame(lvl = rep(c("A", "B"), each = 50), val = c(rnorm(50, 1), rnorm(50, 3)))
majtxt <- data.frame(species = c("sp1", "sp2", "sp3"), geq = c(0.01, 2, 2.2))
ggplot(majdf, aes(x = val)) +
geom_density() +
geom_vline(data = majtxt, aes(xintercept = geq)) +
geom_text(data = majtxt, aes(x = geq, y = 0.2, label = geq, color = species), angle = 90) +
facet_wrap(~ lvl)
Run Code Online (Sandbox Code Playgroud)

我创建了一个R markdown(.rmd),当文件被编织时,它包含20个R块,其中一些是缓存的.编织后,R的全球环境仍然是空的.如何在不运行代码的情况下将缓存块中的内容导入到R的全局环境中?
如何取消选择...自写函数参数中给出的列.(我还需要在另一个点选择列,所以只使用-in 指定列...不能解决我的问题.)
任何解决方案都是apreciated,select-helpers,manipulating quosures或expression,......
# very simple example data
test <- data.frame(a=1:3, b=1:3, c=1:3)
# function skeleton
testfun <- function(x, ...){
y <- select(x, ...)
z <- select(x, -...) # does of course not work like this
return(list(y, z)) # just as an example
}
# calling the function to select different columns
testfun(test, a)
testfun(test, a, b)
Run Code Online (Sandbox Code Playgroud) 在cbind或者rbind表格对象之后(例如,添加一个总和或某些边缘),dimnames的名称会丢失(请参阅参考资料y).我找到了这个"解决方法"但是想知道是否有一个解决方案,看起来不那么黑客.也许可以在飞行中完成的事情?我想保留课堂的对象table.
> (x <- table(1:3, sample(1:3), dnn = c("rows", "cols")))
cols
rows 1 2 3
1 1 0 0
2 0 0 1
3 0 1 0
> (y <- cbind(x, "4" = 4:6)) # "rows" and "cols" get lost
1 2 3 4
1 1 0 0 4
2 0 0 1 5
3 0 1 0 6
> names(dimnames(y)) <- names(dimnames(x))
> y
cols
rows 1 2 3 4
1 …Run Code Online (Sandbox Code Playgroud) 我在python中的rpy2中有一个数据帧,我想从中提取列.这个R代码的rpy2等价物是多少?
df[,c("colA", "colC")]
这可以获得第一列:
mydf.rx(1)
但是我如何拉出一组列,例如第1列,第3列和第5列?
mydf.rx([1,3,5])
不起作用.也不是:
mydf.rx(rpy2.robjects.r.c([1,3,5]))
我正在将我的R一些东西移到Python,因此我必须使用pandas.DataFrames。有几件事我想优化。
假设我们有一张桌子
key value
abc 1
abc 2
abd 1
Run Code Online (Sandbox Code Playgroud)
我们想要得到一个 form 的字典{key -> list[values]}。这是我现在完成这项工作的方法。
from pandas import DataFrame
from StringIO import StringIO
def get_dict(df):
"""
:param df:
:type df: DataFrame
"""
def f(accum, row):
"""
:param accum:
:type accum: dict
"""
key, value = row[1]
return accum.setdefault(key, []).append(value) or accum
return reduce(f, df.iterrows(), {})
table = StringIO("key\tvalue\nabc\t1\nabc\t2\nabd\t1")
parsed_table = [row.rstrip().split("\t") for row in table]
df = DataFrame(parsed_table[1:], columns=parsed_table[0])
result = get_dict(df) …Run Code Online (Sandbox Code Playgroud)