首页 > 解决方案 > R用动态值对数据框列行进行子集化

问题描述

我有名为的数据框dcWCTOneSubTotal,其中的列T1Description具有多个值。

如何在将其存储在 descriptionName 之类的变量中后传递每个值。如果我将值传递T1Description=='descriptionName'给子集函数,它将返回 null。

如果我将值作为T1Description=="abc" 或传递T1Description=="xyz"给子集函数,它会返回行。

我想叫这个

bar.Chart.D.F.1 <- subset(dcWCTOneSubTotal ,  T1Description=='descriptionName')

内部函数,以便我每次可以为不同的 T1Description 列拥有不同的子集。

标签: rsubsetdynamic-values

解决方案


正如评论中所建议的 - 只需省略引号:

dcWCTOneSubTotal <- data.frame(T1Description = c("a","b","c","a","c","b"),
                               T2Description = 1:6, 
                               stringsAsFactors = FALSE)

dcWCTOneSubTotal
#   T1Description T2Description
# 1             a             1
# 2             b             2
# 3             c             3
# 4             a             4
# 5             c             5
# 6             b             6


sub = "a"
subset(dcWCTOneSubTotal, T1Description==sub)
#   T1Description T2Description
# 1             a             1
# 4             a             4

sub= "b"
subset(dcWCTOneSubTotal, T1Description==sub)
#   T1Description T2Description
# 2             b             2
# 6             b             6

推荐阅读