【问题标题】:How do I replace a text string with a number, based on a key word contained in the cell如何根据单元格中包含的关键字将文本字符串替换为数字
【发布时间】:2016-04-07 18:23:30
【问题描述】:

我有一个带有短文本字符串的字符串变量。我想根据单个单元格中包含的关键词将所有文本字符串替换为数字。

示例:一些单元格表示“我喜欢猫”,而另一些单元格表示“我不喜欢湿狗的气味”。

我想将值 1 分配给包含单词 cat 的所有单元格,并将数字 2 分配给包含单词 dog 的所有单元格。

我该怎么做?

【问题讨论】:

    标签: string spss text-extraction


    【解决方案1】:

    当“cat”出现在 OldVar 中时,这会将 1 放入 NewVar,2 表示“dog”,3 表示“mouse”:

    do repeat wrd="cat" "dog" "mouse"/val= 1 2 3.
      if index(OldVar, wrd)>0 NewVar=val.
    end repeat.
    

    这只有在同一个句子中永远不会有猫和狗的情况下才有用。如果你确实有这种情况,你应该这样做:

    do repeat wrd="cat" "dog" "mouse"/NewVar=cat dog mouse.
      compute NewVar=char.index(OldVar, wrd)>0.
    end repeat.
    

    这将为每个可能的单词创建一个新变量,如果单词出现在 OldVar 中,则为 1,如果不出现,则为 0。

    【讨论】:

    • 你的回答比我找到的还要好,谢谢!
    • 如果文本中的大写字母有问题,您可以像在解决方案中那样使用 UPCASE 函数。
    【解决方案2】:

    显然你必须打开一个语法窗口并输入这个命令:

    COMPUTE newvar=CHAR.INDEX(UPCASE(VAR1),"ABCD")>0
    

    newvar 是新变量的名称。 VAR1 是要搜索的变量的名称。 ABCD 是要搜索的文本。 注意:这必须是大写字母。

    如果找到文本,newvar 将收到值 1。

    【讨论】:

      猜你喜欢
      • 2019-10-20
      • 2015-10-02
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      相关资源
      最近更新 更多