根据文本删除列和下一列
Delete column and next column based on text
我有这样的数据:
我想删除包含“rico”的列并删除所有后续列。我正在寻找这个:
这就是我所做的,但它不起作用:
mydata = data.frame(
X1 = c("john", "max", "jay", "douglas"),
X2 = c("alexia", "miguel", "vince", "gary"),
X3 = c("peter", "rico", "joe", "jenny"),
X4 = c("marc", "kelly", "max", "jones")
)
mydata[,grepl("rico", names(mydata))]
一些帮助将不胜感激
您可以在 grepl
命中 rico.
之前将 mydata 的范围设为 1 的子集
mydata[1:(grep("rico", mydata)-1)]
#mydata[1:(grep("rico", mydata)[1]-1)] #Alternative when there are more hists
# X1 X2
#1 john alexia
#2 max miguel
#3 jay vince
#4 douglas gary
您可以使用 colSums
-
mydata[cumsum(colSums(mydata == 'rico') > 0) == 0]
# X1 X2
#1 john alexia
#2 max miguel
#3 jay vince
#4 douglas gary
我们使用 colSums
计算每列中出现 'rico'
的次数,我们通过将其与 > 0
进行比较来创建逻辑向量,使用 cumsum
我们 select 第一次出现该词之前的所有列。
我有这样的数据:
我想删除包含“rico”的列并删除所有后续列。我正在寻找这个:
这就是我所做的,但它不起作用:
mydata = data.frame(
X1 = c("john", "max", "jay", "douglas"),
X2 = c("alexia", "miguel", "vince", "gary"),
X3 = c("peter", "rico", "joe", "jenny"),
X4 = c("marc", "kelly", "max", "jones")
)
mydata[,grepl("rico", names(mydata))]
一些帮助将不胜感激
您可以在 grepl
命中 rico.
mydata[1:(grep("rico", mydata)-1)]
#mydata[1:(grep("rico", mydata)[1]-1)] #Alternative when there are more hists
# X1 X2
#1 john alexia
#2 max miguel
#3 jay vince
#4 douglas gary
您可以使用 colSums
-
mydata[cumsum(colSums(mydata == 'rico') > 0) == 0]
# X1 X2
#1 john alexia
#2 max miguel
#3 jay vince
#4 douglas gary
我们使用 colSums
计算每列中出现 'rico'
的次数,我们通过将其与 > 0
进行比较来创建逻辑向量,使用 cumsum
我们 select 第一次出现该词之前的所有列。