如何组合R ifelse()和kable()
我定期运行R标记脚本,其中包含我称之为违反者的条件表。下面是一个示例数据帧:如何组合R ifelse()和kable(),r,r-markdown,kable,kableextra,R,R Markdown,Kable,Kableextra,我定期运行R标记脚本,其中包含我称之为违反者的条件表。下面是一个示例数据帧: df <- data.frame(Person = c("Jack", "Jill"), Violator = c("F", "F")) #> Person Violator #> 1 Jack F #> 2 Jill F 我认为,这种简单的方法应该有效: ```{r} temp <- df %>% filter(Violator == "
df <- data.frame(Person = c("Jack", "Jill"), Violator = c("F", "F"))
#> Person Violator
#> 1 Jack F
#> 2 Jill F
我认为,这种简单的方法应该有效:
```{r}
temp <- df %>% filter(Violator == "T")
if(nrow(temp) != 0){
kable(temp, "html", align = "l") %>%
kable_styling("striped", "hover", full_width = F) %>%
column_spec(1, bold = T, background = "#FFFFFF") %>%
collapse_rows(columns = 1)
}
```
我认为,这种简单的方法应该有效:
```{r}
temp <- df %>% filter(Violator == "T")
if(nrow(temp) != 0){
kable(temp, "html", align = "l") %>%
kable_styling("striped", "hover", full_width = F) %>%
column_spec(1, bold = T, background = "#FFFFFF") %>%
collapse_rows(columns = 1)
}
```
在将数据帧传递给kable之前,请尝试对其进行过滤。例如,df%>%FilterVolator==T%>%kablehtml,align=l%>%等等@Andrew刚刚尝试过,但我得到了相同的错误下标。除非我误解了你的意思,否则我认为kable无法打印0大小的表格。df%>%FilterVolator==T将返回一个包含0行的表。执行df1%FilterVolator==T,然后检查nrowdf1>0的条件,并对df1应用kable。抱歉-误读您的问题!!!在将数据帧传递给kable之前,请尝试对其进行过滤。例如,df%>%FilterVolator==T%>%kablehtml,align=l%>%等等@Andrew刚刚尝试过,但我得到了相同的错误下标。除非我误解了你的意思,否则我认为kable无法打印0大小的表格。df%>%FilterVolator==T将返回一个包含0行的表。执行df1%FilterVolator==T,然后检查nrowdf1>0的条件,并对df1应用kable。抱歉-误读您的问题!!!您可以使用anydf$Violator==TRUEPoGibas来代替创建其他对象:从问题中,df$Violator包含字符串值T或F。您的测试anydf$Violator==TRUE将始终返回FALSE,因为TRUE将转换为字符串值TRUE进行比较。您可以使用anydf$Violator==TRUEPoGibas代替创建其他对象:从问题中,df$Violator包含字符串值T或F。您的测试anydf$Violator==TRUE将始终返回FALSE,因为TRUE将转换为字符串值TRUE进行比较。