我有字符向量,我想确保向量的所有元素具有相同的长度.因此我用空格填充短元素,如下所示:
vec <- c("fjdlksa01dada","rau","sjklf")
x <- sprintf("%-15s", vec)
nchar(x)
# returns
[1] 15 15 15
Run Code Online (Sandbox Code Playgroud)
喜欢上一个问题的答案.这很好,但它似乎与变音符号有问题.例如,如果我的矢量看起来像这样:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
y <- sprintf("%-15s", vec)
nchar(y)
# returns
[1] 15 14 15
Run Code Online (Sandbox Code Playgroud)
我在Mac OS X上运行R(10.6).我怎样才能解决这个问题?
编辑:注意,我不打算修复nchar的输出,因为它是正确的.问题是sprintf失去了变形金刚.
编辑:更新R,更改为DWins区域设置 - 完全没有变化.但:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
Encoding(vec2)
# returns
[1] "unknown" "UTF-8" "unknown"
Run Code Online (Sandbox Code Playgroud)
奇怪.
我有data.frame包含几个因素,我想重命名所有这些因素的因子水平.例如:
mydf <- data.frame(col1 = as.factor(c("A","A",NA,NA)),col2 = as.factor(c("A",NA,NA,"A")))
mydf <- as.data.frame(lapply(mydf,addNA))
Run Code Online (Sandbox Code Playgroud)
请注意,现实生活中的示例不仅仅包含两列.因此,我想使用apply将其他级别名称分配给所有这些列,就像在:
levels(mydf$col1) <- c("1","0")
Run Code Online (Sandbox Code Playgroud)
我试过以下但是没有用......
apply(mydf,1,function(x) levels(x) <- c("1","0"))
Run Code Online (Sandbox Code Playgroud)
我并不感到惊讶它没有用,但我现在没有更好的想法.我可以使用with吗?
编辑:我意识到我在这里过分简化了一些错误.我曾经addNA说过这样一个事实,那就是NA不应该再作为NAs处理了.因此,我也想重新标记它们.这不适用于Andrie的建议并返回以下错误消息:
labels = c("1", : invalid labels; length 2 should be 1 or 1
Run Code Online (Sandbox Code Playgroud)
请注意,我更新了我的示例df.
我想我需要重新措辞我之前措辞严厉的问题(删除它).这是另一种尝试.我想加入邻近地区,以便他们的共同边界消失,只能看到他们的外线.
这是一个可重复的例子:
require(shapefiles)
require(sp)
xx <- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1],
IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
# show all the subregions
plot(xx)
Run Code Online (Sandbox Code Playgroud)

现在让我们只考虑区域3和区域5
plot(xx[c(3,5),])
Run Code Online (Sandbox Code Playgroud)
我怎样才能聚合这些区域.在实践中,我想要做的就是拥有一张显示所有国家的整个大陆的地图,并制作一张显示北美和南美的地图.
对我来说,这看起来是一个非常常见的任务,但到目前为止我找不到合适的功能.我只是错过了一个功能,还是我可以手动操作?

我尝试使用print.xtable add.to.row这样的表格格式:
体育
share of ballers 22.3
share of skiers 4.6
Run Code Online (Sandbox Code Playgroud)
瘾
share of smokers 20.3
share of drinkers 6.6
Run Code Online (Sandbox Code Playgroud)
我的R表确实包含额外的row.names,即使这些行不包含任何值.我使用add.to.row选项将颜色添加到不同的行,就像这里建议的那样工作正常.但是不起作用的是用xtable添加粗体文本或hline在行之间添加额外的文本.我总是收到如下错误消息:
Bad type area settings! 检测到的线宽比启发式确定的线宽大约52%(类型区域).
所以这可能意味着由于我的变化,桌子对于它的环境变得很大,但是不知道如何处理它.注意我读的帖子这样一个可修改xtable输出本身,但即使这可能可能对我来说,我在寻找一个简单的解决方案.因为如果我采用这种解决方案,我必须capture.output使用正则表达式替换来在它们之间添加一些东西.
有没有解决的办法?还是有一个更简单的解决方案?
我需要在我的rhel 6.3机器上运行OCI lib,我遇到了一些无法找到的OCI头文件的问题.我安装了(使用yum install)
甲骨文instantclient11.2-基本-11.2.0.3.0-1.x86_64.rpm
因为这个官方页面所有我需要运行OCI.为了测试整个事情,我已经安装了sqplus64,它在我设置后工作export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib.遗憾的是,设置后无法找到头文件LD_LIBRARY_PATH.实际上我并不感到惊讶,因为include这些oracle路径中没有任何目录.
所以问题是:我从哪里获取这些丢失的头文件?他们真的已经在那里,我只能找到它们吗?
顺便说一句:我正在做这整个练习,因为我想在我的R Studio服务器上使用ROracle,这个R包依赖于OCI库.一旦我回到R领域,我的道路就会变得更加崎岖不平.
编辑:这个文档对我有所帮助.但是,我想我现在找到了一些头文件:"/ usr /include/oracle/11.2/client64".但是我必须将哪个变量设置到此位置?
大部分时间我的R版本和软件包都是合理的最新版本.现在我想知道使用什么年份citation("somepackage").基本上所有套餐都是2012年.我怎样才能找到他们第一次出现时的真实日期?或者我应该引用最新版本?
我想在另一个引用类中使用自定义引用类,但此代码失败:
nameClass <- setRefClass("nameClass", fields = list(first = "character",
last = "character"),
methods = list(
initialize = function(char){
chunks <- strsplit(char,"\\.")
first <<- chunks[[1]][1]
last <<- chunks[[1]][2]
},
show = function(){
cat("Special Name Class \n:")
cat("First Name:")
methods::show(first)
cat("Last Name:")
methods::show(last)
}
))
# this works fine
nameClass$new("tyler.durden")
Run Code Online (Sandbox Code Playgroud)
当我尝试添加具有类字段的第二个类时,nameClass无法启动此类.
personClass <- setRefClass("personClass", fields = list(fullname = "nameClass",
occupation = "character"),
methods = list(
initialize = function(Obj){
nm <- deparse(substitute(Obj))
fullname <<- nameClass$new(nm)
occupation <<- Obj
}))
Run Code Online (Sandbox Code Playgroud)
这只是回报:
Error …Run Code Online (Sandbox Code Playgroud) 我阅读了Postgres Wiki中的慢速计数条目。
对于我的表格来说,估计值相当准确。不过,对于观点
SELECT reltuples FROM pg_class WHERE relname = 'tbl';
Run Code Online (Sandbox Code Playgroud)
不起作用并且总是返回 0 条记录。除此之外,还有其他方法可以计算或估计 Postgres 中视图的行数吗?
SELECT COUNT(*) FROM someview;
Run Code Online (Sandbox Code Playgroud)
ANALYZE对于视图也不起作用(对于表没有问题),我只是得到:
ANALYZE v_myview;
WARNING: skipping "v_myview" --- cannot analyze non-tables or special system tables
ANALYZE
Run Code Online (Sandbox Code Playgroud) 我是 stackoverflow 的新手并搜索了很多,但找不到我的问题的答案。我正在尝试使用优化包 Rsolnp 来最小化下面的问题。虽然求解器给了我一个解决方案,但每次运行代码时我都会收到以下警告消息:
警告消息:1:在 cbind(temp, funv) 中:结果的行数不是向量长度的倍数 (arg 1)
此外,该解决方案与我使用 ipop 和 solve.QP 获得的解决方案完全不同。他们的解决方案几乎相同(0.2480、0.0000、0.0121、0.7400)。我尝试了许多不同的问题表述,但无法弄清楚我做错了什么。我感谢所有的帮助和信息!
library(Rsolnp)
# Starting Values
x0 <- c(0.25,0,0.01,0.75)
fn <- function(x){
d <- c(0.0308, 0.0269, 0.0145, 0.0130)
d <- -d
D <- cbind(c(0.1486, 0.0778, -0.0240, -0.0154),
c(0.0778, 0.1170, 0.0066, 0.0029),
c(-0.0240, 0.0066, 0.0444, 0.0193),
c(-0.0154, 0.0029, 0.0193, 0.0148))
out <- t(d) %*% x + 0.5 * (t(x) %*% D %*% x)
out
}
# Inequality Constraint: 0 =< x 0 =< 1
lx <- rep(0,4) …Run Code Online (Sandbox Code Playgroud) 我有一个包含列"值"的熔化数据集,它表示随数据集的每一行而变化的绝对数字.我想按国家/地区在条形图中显示此数字.
p <- ggplot(melted,aes(factor(country),y=as.numeric(value))) + geom_bar() +opts(axis.text.x = theme_text(angle = 90,hjust = 1))
Run Code Online (Sandbox Code Playgroud)
我得到的是:
pmin(y,0)出错:找不到Objekt'y'.
当然我三重检查是否有"价值"变量我只是找不到什么是错的.如果离开y = ... out,我得到的每个国家的观察结果对于我的每个国家都是相同的.