小编Rol*_*and的帖子

在聚合数据帧之后,如何将rownames列表作为值?

我有一个像这样的数据帧:

    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列表. …

r reshape

8
推荐指数
1
解决办法
117
查看次数

在R中使用mclapply抑制警告

随着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)

有关如何避免丢失警告的任何提示?

warnings r mclapply

8
推荐指数
1
解决办法
575
查看次数

使用ggplot2的Excel图形

我的公司希望在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)

r ggplot2

8
推荐指数
1
解决办法
1223
查看次数

摆脱"AsIs"类属性

我认为简单的问题,但没有找到答案.如何摆脱我的数据框上的"AsIs"类属性.它防止了write.dbfforeign包从转换为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)

r dataframe

7
推荐指数
1
解决办法
5157
查看次数

melt.data.frame()更改POSIXct列的打印方式

将数据帧融合到整个范围会更改"时间"(类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)

r posixct reshape2

7
推荐指数
1
解决办法
627
查看次数

如何使用r识别给定数据的分布

我有如下数据,我需要确定数据的分布.请帮助.

 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)

r

7
推荐指数
2
解决办法
2万
查看次数

计算每个组的排名

我有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)

r ranking plyr

6
推荐指数
1
解决办法
2021
查看次数

R 3.0.x中的filled.contour抛出错误

我有一个用于绘制填充轮廓的自定义功能,这些功能主要基于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)

plot r contour

6
推荐指数
1
解决办法
4558
查看次数

如何替换geom_text指南(图例)的传奇"子弹"

我想替换传说(指南)中的'子弹' 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 ggplot2

6
推荐指数
2
解决办法
1271
查看次数

如何在ggplot2中更改自定义图例中的线条角度

我正在尝试为我的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)

我们可以看到图例框中的线条略微倾斜,我想让它们水平. 在此输入图像描述

r ggplot2 legend-properties

6
推荐指数
1
解决办法
624
查看次数