我在 ifelse 语句中使用带有因子变量的 grepl 不断收到此警告:“参数'模式'有长度
我有这些变量:x7和y7。x7是一个互斥的字符变量,y7是一个不互斥的因子变量,因此是一串数字(0到9)。
x7可以以任何字母结尾,但我想限制为等于Z或J。如果它等于Z,我希望y7以字符串(0,1,2,3,4)中的任何这些值结尾。
下面是我写的:
test = ifelse( ( x7 %in% c( "Z" ) & grepl( c( 0 , 1 , 2 , 3 , 4 ) , y7 ) ) | x7 %in% c( "J" ) , 1 , 0 )
因此,如果x7是Z,y7是0:4,或者如果x7是J,它是1,则创建一个虚拟变量(test)。其他的都是0。
我一直收到这个警告:“参数'模式'有长度
所以,如果它是“123”或“246”,它不会计算它们,因为它不以0开头。但如果它是”014“或”056“,它会计算。我需要它来计算所有包含0到4的序列,而不仅仅是以0开头的序列。
如果字符串中有任何这些值(0、1、2、3、4),将创建等于1的虚拟值。
在格雷普尔
:
grepl(c(0, 1, 2, 3, 4) , c(1, 2))
第一个参数模式
的长度应为 1,在您的情况下,长度应为 5。要匹配 0 到 4 之间的数字,您可以执行以下操作:
grepl("[0-4]", c("0", "4", "5", "9"))
# [1] TRUE TRUE FALSE FALSE
我试图从下面的< code>chr数组中用gsub删除字符串中的模式 模式由和之间的术语形成,仅在以开头的字符串中。因此,在我们的例子中,模式是: 该模式可以通过使用 去除此图案后,期望的结果是这样的: 无论如何,当我使用: 我得到了一个错误的结果:
我有以下问题。 如何创建一个名为<code>word</code>的新列,其中仅包含<code>col2</code<中未出现的值?
我需要找到高于指定阈值的的第一个和最后一个元素。我找到了以下解决方案,这是有效的,但它看起来有点令人费解。有没有更简单/更蟒蛇的方式?
} 嗨,我已经在这方面工作了很长时间,我知道这似乎很容易,但我就是不能理解它....我只能更改getOverM()方法中的代码,我不能编辑其他方法。我想使用if语句,但我只是不知道如何编写一个代码来显示与m相比下一个最大的索引数。 插入GetOverm方法主体的代码。
问题内容: 这是我要使用的。.length方法对我尝试的任何操作均无效,因此我什至不知道从哪里开始。 问题答案: 您正在尝试遍历单个数组而不是字符串数组。更改 至 以便通过字符串列表循环,收集每个字符串和存储它诠释的,你以后。