0
我想为使用xtable
创建的Latex表中的单元格着色。 我看起来像一个数据帧:基于lapply的条件格式化xtable
a <- data.frame(a=c(seq(1:100)),b=c(seq(1:100)),b=c(seq(1:100)))
现在我想单独着色基于其价值每一个细胞。我创建了下面的函数来实现这一目标:
formatting<-function(x){ifelse(x<50,paste("\\cellcolor{red}{",x,"}"),x)
ifelse(x>=50&x<=80,paste("\\cellcolor{yellow}{",x,"}"),x)
ifelse(x>=80,paste("\\cellcolor{green}{",x,"}"),x)
}
然而,我的功能该数据帧上应用lapply
只执行函数的最后一行(绿色着色)
a <- data.frame(lapply(a, FUN=formatting))
基本上我想值< 50到红色(\\cellcolor{red}{",x,"}")
黄色50-80(\\cellcolor{yellow}{",x,"}")
之间occure,价值观和绿色(\\cellcolor{green}{",x,"}")
高于80值什么是错的在我的功能?我也注意到,如果我会为每一个单独的颜色我碰到一个警告提示创建一个函数:
red<-function(x){ifelse(x<50,paste("\\cellcolor{red}{",x,"}"),x)}
yellow<-function(x){ifelse(x>=50&x<=80,paste("\\cellcolor{yellow}{",x,"}"),x)}
green<-function(x){ifelse(x>=80,paste("\\cellcolor{green}{",x,"}"),x)}
a <- data.frame(lapply(a, FUN=red))
a <- data.frame(lapply(a, FUN=yellow))
a <- data.frame(lapply(a, FUN=green))
Warning message:
1: In Ops.factor(x, 50) : >= not meaningful for factors
谁能帮助我?
我打了一下下面的代码:
resistant<-function(x){ifelse((x>=0&x<50),paste("\\cellcolor{red}{",x,"}"),x)}
intermediate<-function(x){ifelse((x>=50&x<80),paste("\\cellcolor{yellow}{",x,"}"),x)}
susceptible<-function(x){ifelse((x>=80&x<=100),paste("\\cellcolor{green}{",x,"}"),x)}
a<-as.data.frame(apply(a,2, FUN=resistant))
a<-as.data.frame(apply(a,2, FUN=intermediate))
a<-as.data.frame(apply(a,2, FUN=susceptible))
然而,似乎只有最后一行没有被正确执行。为什么?
嗨,需要一些时间和阅读在标记之前标记摘录。 [tag:dataframes]是熊猫,而你需要[tag:data.frame]在这里。下次再小心点。看到这篇文章。 [警告\ [r \]用户添加\ [dataframes \]标记而不是\ [data.frame \]标记](http://meta.stackoverflow.com/q/318933) –