r - 尽管列在数据框中,但不能对列进行子集化
问题描述
我有这个代码:
drugs_from_samples = read_excel("/Downloads/drugs from samples.xlsx") %>%
dplyr::select("drug", "Indication reviewed", "Action reviewed", "frequency")
然后,当我尝试
df = drugs_from_samples %>%
dplyr::select(-drug) %>%
group_by(`Indication reviewed`, `Action reviewed`) %>%
summarise(n = sum(frequency))
PieDonut(df,
aes(df$`Indication reviewed`, df$`Action reviewed`, count = n))
当我尝试绘制 PieDonut 时,它给了我以下错误:
“不能对不存在的列进行子集化。x 列 df$`Indicationreviewed` 和 df$`Actionreviewed` 不存在”
我已经在寻找这个特定问题的答案,有人可以提供任何帮助吗?
解决方案
列名可能有问题。在执行操作之前,请尝试以下操作:
colnames(drugs_from_sample) <- gsub(" ", "_", colnames(drugs_from_sample))
这会在列名中用下划线替换空格。然后替换您的代码,如:
df = drugs_from_samples %>%
dplyr::select(-drug) %>%
group_by(Indication_reviewed, Action_reviewed) %>%
summarise(n = sum(frequency))
PieDonut(df,
aes(df$Indication_reviewed, df$Action_reviewed, count = n))
推荐阅读
- java - JAVA:运行 cron 作业任务,即使计划已经到来
- react-native - React Native 中的基本可重复组件动画示例
- php - Laravel 模型,选择十六进制查询
- javascript - 如何使用 AVA 框架根据某些条件(比如说环境变量)跳过测试执行
- amazon-web-services - 关闭 ssh 会话后,我想在 aws ec2 中运行一个进程
- xamarin - 是否有另一种方法可以在不使用 Convert 的情况下转换用户在条目中输入的值?....(Convert.ToDouble 或 Convert.ToInt)
- firebase - 是音乐流媒体应用程序的理想之选。(扑)
- android - android:fontFamily 在 styles.xml 中不起作用
- timestamp - 四舍五入到最接近的十分钟 - Snowflake/SQL
- ios - Apple Developer Enterprise Program 应用程序没有图标