我有一个像这样的数据帧:
type V1 V2
1 A bla bla
2 A bla bla
3 B bloo bla
4 B bloo bla
5 C moo bloo
6 C moo bloo
Run Code Online (Sandbox Code Playgroud)
目前我融化/施法得到这个:
type bla bloo moo
A 4 0 0
B 2 2 0
C 0 2 2
Run Code Online (Sandbox Code Playgroud)
使用这些命令:
library(reshape)
melted <- melt(df, id='type')
count <- function(x) {
length(na.omit(x))
}
casted <- cast(melted, type~value, count)
Run Code Online (Sandbox Code Playgroud)
然而,我想获得原始rownames的列表而不是计数/求和.像这样的东西:
type bla bloo moo
A 1,2 0 0
B 3,4 3,4 0
C 0 5,6 5,6
Run Code Online (Sandbox Code Playgroud)
其中bla,bloo和moo的每个值都是原始数据框中唯一的rownames列表. …
随着mclapply()所有发出的警告似乎得到抑制:
library(multicore)
mclapply(1:3, function(x) warning(x))
[[1]]
[1] "1"
[[2]]
[1] "2"
[[3]]
[1] "3"
Run Code Online (Sandbox Code Playgroud)
同时lapply会给:
lapply(1:3, function(x) warning(x))
[[1]]
[1] "1"
[[2]]
[1] "2"
[[3]]
[1] "3"
Warning messages:
1: In FUN(1:3[[3L]], ...) : 1
2: In FUN(1:3[[3L]], ...) : 2
3: In FUN(1:3[[3L]], ...) : 3
Run Code Online (Sandbox Code Playgroud)
有关如何避免丢失警告的任何提示?
我的公司希望在R中进行报告,他们希望尽可能多地保留Excel报告.有没有办法在ggplot2中保持俗气的3-D看起来在Excel中?我想制作一个看起来像下面的情节:
我已经能够接近了.这是我到目前为止:
gender <- c("Male", "Male", "Female", "Male", "Male", "Female", "Male", "Male", "Female", "Male",
"Male", "Female")
race <- c("African American", "Caucasian", "Hispanic", "African American", "African American",
"Caucasian", "Hispanic", "Other", "African American", "Caucasian", "African American",
"Other")
data <- as.data.frame(cbind(gender, race))
gender_data <- data %>%
count(gender = factor(gender)) %>%
ungroup() %>%
mutate(pct = prop.table(n))
race_data <- data %>%
count(race = factor(race)) %>%
ungroup() %>%
mutate(pct = prop.table(n))
names(race_data)[names(race_data) == 'race'] <- 'value'
names(gender_data)[names(gender_data) == 'gender'] <- 'value'
# Function for fixing x …Run Code Online (Sandbox Code Playgroud) 我认为简单的问题,但没有找到答案.如何摆脱我的数据框上的"AsIs"类属性.它防止了write.dbf从foreign包从转换为DBF.我正在使用rpy2,但它确实适用于没有"AsIs"的R数据帧.我把完整的代码放在错误消息下面.dbfs = write_dbf(r_dataframe)
Error in function (dataframe, file, factor2char = TRUE, max_nchar = 254) :
data frame contains columns of unsupported class(es) AsIs
---------------------------------------------------------------------------
RRuntimeError Traceback (most recent call last)
<ipython-input-26-9072df63231a> in <module>()
----> 1 dbfs = write_dbf(r_dataframe)
/home/matthew/.virtualenvs/mypython/lib/python3.2/site-packages/rpy2-2.2.6dev_20120814-py3.2-linux-i686.egg/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
80 v = kwargs.pop(k)
81 kwargs[r_k] = v
---> 82 return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
/home/matthew/.virtualenvs/mypython/lib/python3.2/site-packages/rpy2-2.2.6dev_20120814-py3.2-linux-i686.egg/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
32 for k, v in kwargs.items():
33 new_kwargs[k] = conversion.py2ri(v)
---> 34 res = …Run Code Online (Sandbox Code Playgroud) 将数据帧融合到整个范围会更改"时间"(类POSIXct)列的打印方式.
t.wide <- data.frame(product=letters[1:5],
result=c(2, 4, 0, 0, 1),
t1=as.POSIXct("2014-05-26") + seq(0, 10800, length.out=5),
t2=as.POSIXct("2014-05-27") + seq(0, 10800, length.out=5),
t3=as.POSIXct("2014-05-28") + seq(0, 10800, length.out=5))
library(reshape2)
t.long <- melt(t.wide, measure.vars=c("t1", "t2", "t3"), value.name="time")
t.long$time
[1] 1401055200 1401057900 1401060600 1401063300 1401066000 1401141600 1401144300
[8] 1401147000 1401149700 1401152400 1401228000 1401230700 1401233400 1401236100
[15] 1401238800
attr(,"class")
[1] "POSIXct" "POSIXt"
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果print()显式调用,则按预期打印对象(时间戳,而不是它们的数字表示).
print(t.long$time)
[1] "2014-05-26 00:00:00 CEST" "2014-05-26 00:45:00 CEST" "2014-05-26 01:30:00 CEST"
[4] "2014-05-26 02:15:00 CEST" "2014-05-26 03:00:00 CEST" "2014-05-27 00:00:00 CEST"
[7] …Run Code Online (Sandbox Code Playgroud) 我有如下数据,我需要确定数据的分布.请帮助.
x <- c(37.50,46.79,48.30,46.04,43.40,39.25,38.49,49.51,40.38,36.98,40.00,38.49,37.74,47.92,44.53,44.91,44.91,40.00,41.51,47.92,36.98,43.40)
Run Code Online (Sandbox Code Playgroud) 我有df类型和价值观.我想按x内部顺序对它们进行排序,type并计算有多少其他行的行n数高于x(列pos).
例如
df <- data.frame(type = c("a","a","a","b","b","b"),x=c(1,77,1,34,1,8))
# for type a row 3 has a higher x than row 1 and 2 so has a pos value of 2
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
library(plyr)
df <- data.frame(type = c("a","a","a","b","b","b"),x=c(1,77,1,34,1,8))
df <- ddply(df,.(type), function(x) x[with(x, order(x)) ,])
df <- ddply(df,.(type), transform, pos = (seq_along(x)-1) )
type x pos
1 a 1 0
2 a 1 1
3 a 77 2
4 b …Run Code Online (Sandbox Code Playgroud) 我有一个用于绘制填充轮廓的自定义功能,这些功能主要基于Carey McGilliard和Bridget Ferris的工作(http://wiki.cbr.washington.edu/qerm/sites/qerm/images/1/16/Filled.contour3.R)和http://wiki.cbr.washington.edu/qerm/index.php/R/Contour_Plots.
该filled.contour3函数在R 2.15.3中完美运行,但在R 3.0.x中抛出错误
Error in .Internal(filledcontour(as.double(x), as.double(y), z, as.double(levels), :
there is no .Internal function 'filledcontour'
Run Code Online (Sandbox Code Playgroud)
你能帮我解决一下这个问题,或者解决这个问题,这样我才能使用filled.contour3()R 3.0.x中的这个功能.*我的大部分工作都取决于这个功能而且我在LInux上,因此在生产机器上改变R版本并不容易.很乐意提供赏金.*
要重现错误,请首先提供以下信息
filled.contour3 <-
function (x = seq(0, 1, length.out = nrow(z)),
y = seq(0, 1, length.out = ncol(z)), z, xlim = range(x, finite = TRUE),
ylim = range(y, finite = TRUE), zlim = range(z, finite = TRUE),
levels = pretty(zlim, nlevels), nlevels = 20, color.palette = cm.colors,
col = …Run Code Online (Sandbox Code Playgroud) 我想替换传说(指南)中的'子弹' 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)

我正在尝试为我的ggplot添加一个自定义的图例,但是图例框有一个角度的线条.我想将该角度更改为0度.有没有办法做到这一点?以下是示例图的代码.
ggplot()+geom_abline(aes(color="black",,slope=1,intercept = 0))+
geom_abline(aes(color="red",slope=0.5,intercept = 0))+
scale_color_manual(values=c("black"="black","red"="red"))
Run Code Online (Sandbox Code Playgroud)