有没有办法在R中分割驼峰案例字符串?
我试过了:
string.to.split = "thisIsSomeCamelCase"
unlist(strsplit(string.to.split, split="[A-Z]") )
# [1] "this" "s" "ome" "amel" "ase"
Run Code Online (Sandbox Code Playgroud) 我在美国县级网站www.betydb.org上看过一个互动的等值线图.我想使用R重现类似的地图.我只想要地图和工具提示(不是所有不同缩放级别的切片,或者切换地图的能力)
该地图目前在ruby中创建,弹出窗口(在左下角)查询MySQL数据库.编写它的程序员继续前进,我不熟悉Ruby.

在这里,我将从一个csv文件开始.数据包括州和县名,州和县FIPS.我想情节Avg_yield.
mydata <- read.csv("https://www.betydb.org/miscanthus_county_avg_yield.csv")
colnames(mydata)
# [1] "OBJECTID" "Join_Count" "TARGET_FID" "COUNTY_NAME" "STATE_NAME" "STATE_FIPS"
# [7] "CNTY_FIPS" "FIPS" "Avg_lat" "Avg_lon" "Avg_yield"
Run Code Online (Sandbox Code Playgroud)
我可以使用googleVis包在州一级进行绘图
library(googleVis)
p <- gvisGeoChart(data = mydata, locationvar="STATE_NAME", colorvar = 'Avg_yield',
options= list(region="US", displayMode="regions",
resolution="provinces"))
plot(p)
Run Code Online (Sandbox Code Playgroud)

这提供了状态级着色.我的问题是,如何在县级(而不是州级)解决方案中使用颜色和工具提示来获得类似的内容?
在gvisGeoChart帮助(下区和分辨率)和谷歌的图表记录表明,这是不可能的,但文档是如此广泛,目前尚不清楚是什么我的其他选项,内R.
那么,有没有办法在县级获得带有工具提示和着色的地图?
重命名 aDataFrame的列后,合并新列时出现错误:
import pandas as pd
df1 = pd.DataFrame({'a': [1, 2]})
df2 = pd.DataFrame({'b': [3, 1]})
df1.columns = [['b']]
df1.merge(df2, on='b')
Run Code Online (Sandbox Code Playgroud)
类型错误:只有整数标量数组可以转换为标量索引
从在线条形图指南:
qplot(factor(cyl), data=mtcars, geom="bar", fill=factor(gear))
Run Code Online (Sandbox Code Playgroud)
如何让5个位于底部,4个位于底部,3个位于顶部?
我编写了一个程序,它读取了几个.csv文件(它们不大,每个都有几千行),我做了一些数据清理和争吵,这是每个.csv文件看起来的最终结构(假数据为仅用于说明目的).
import pandas as pd
data = [[112233, 'Rob', 99], [445566, 'John', 88]]
managers = pd.DataFrame(data)
managers.columns = ['ManagerId', 'ManagerName', 'ShopId']
print managers
ManagerId ManagerName ShopId
0 112233 Rob 99
1 445566 John 88
data = [[99, 'Shop1'], [88, 'Shop2']]
shops = pd.DataFrame(data)
shops.columns = ['ShopId', 'ShopName']
print shops
ShopId ShopName
0 99 Shop1
1 88 Shop2
data = [[99, 2000, 3000, 4000], [88, 2500, 3500, 4500]]
sales = pd.DataFrame(data)
sales.columns = ['ShopId', 'Year2010', 'Year2011', 'Year2012']
print sales
ShopId Year2010 …Run Code Online (Sandbox Code Playgroud) 假设我们有两个样本data1并data2具有各自的权重weight1,weight2并且我们想要计算两个加权样本之间的 Kolmogorov-Smirnov 统计量。
我们在python中这样做的方式如下:
import numpy as np
def ks_w(data1,data2,wei1,wei2):
ix1=np.argsort(data1)
ix2=np.argsort(data2)
wei1=wei1[ix1]
wei2=wei2[ix2]
data1=data1[ix1]
data2=data2[ix2]
d=0.
fn1=0.
fn2=0.
j1=0
j2=0
j1w=0.
j2w=0.
while(j1<len(data1))&(j2<len(data2)):
d1=data1[j1]
d2=data2[j2]
w1=wei1[j1]
w2=wei2[j2]
if d1<=d2:
j1+=1
j1w+=w1
fn1=(j1w)/sum(wei1)
if d2<=d1:
j2+=1
j2w+=w2
fn2=(j2w)/sum(wei2)
if abs(fn2-fn1)>d:
d=abs(fn2-fn1)
return d
Run Code Online (Sandbox Code Playgroud)
我们只是根据我们的目的修改经典的双样本 KS 统计,如Press, Flannery, Teukolsky, Vetterling - Numerical Recipes in C - Cambridge University Press - 1992 - pag.626 中实施的那样。
我们的问题是:
案例:我的脚本返回一个数据框,需要将其作为新的数据行附加到现有的谷歌电子表格.截至目前,我通过gspread将数据框作为多个单行添加.
我的代码:
import gspread
import pandas as pd
df = pd.DataFrame()
# After some processing a non-empty data frame has been created.
output_conn = gc.open("SheetName").worksheet("xyz")
# Here 'SheetName' is google spreadsheet and 'xyz' is sheet in the workbook
for i, row in df.iterrows():
output_conn.append_row(row)
Run Code Online (Sandbox Code Playgroud)
有没有办法追加整个数据框而不是多个单行?
目前,我有一个效用函数lags的东西data.table按组.功能很简单:
panel_lag <- function(var, k) {
if (k > 0) {
# Bring past values forward k times
return(c(rep(NA, k), head(var, -k)))
} else {
# Bring future values backward
return(c(tail(var, k), rep(NA, -k)))
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以从data.table:
x = data.table(a=1:10,
dte=sample(seq.Date(from=as.Date("2012-01-20"),
to=as.Date("2012-01-30"), by=1),
10))
x[, L1_a:=panel_lag(a, 1)] # This won't work correctly as `x` isn't keyed by date
setkey(x, dte)
x[, L1_a:=panel_lag(a, 1)] # This will
Run Code Online (Sandbox Code Playgroud)
这要求我检查内部panel_lag是否x有键.有没有更好的方法来做滞后?这些表往往很大,所以它们应该真正被键入.我迟到setkey之前就做了.我想确保我不会忘记关键.所以我想知道人们是否有这样的标准方式.
在R中,我想转换
c("ThisText", "NextText")
Run Code Online (Sandbox Code Playgroud)
至
c("this.text", "next.text")
Run Code Online (Sandbox Code Playgroud)
如何在保留总和的同时将浮点数舍入为整数?具有以伪代码写的下面的答案,伪代码将向量舍入为整数值,使得未改变的元素和舍入误差的总和最小化.我想在R中有效地实现这一点(如果可能的话,矢量化).
例如,舍入这些数字会产生不同的总数:
set.seed(1)
(v <- 10 * runif(4))
# [1] 2.655087 3.721239 5.728534 9.082078
(v <- c(v, 25 - sum(v)))
# [1] 2.655087 3.721239 5.728534 9.082078 3.813063
sum(v)
# [1] 25
sum(round(v))
# [1] 26
Run Code Online (Sandbox Code Playgroud)
从答案中复制伪代码以供参考
// Temp array with same length as fn.
tempArr = Array(fn.length)
// Calculate the expected sum.
arraySum = sum(fn)
lowerSum = 0
-- Populate temp array.
for i = 1 to fn.lengthf
tempArr[i] = { result: floor(fn[i]), // Lower …Run Code Online (Sandbox Code Playgroud) r ×6
python ×4
pandas ×3
camelcasing ×1
class ×1
data.table ×1
dataframe ×1
dictionary ×1
ggplot2 ×1
google-maps ×1
gspread ×1
oop ×1
plot ×1
rounding ×1
scipy ×1
split ×1
tooltip ×1