【问题标题】:New variable using parts of string variable使用部分字符串变量的新变量
【发布时间】:2014-11-04 21:56:19
【问题描述】:

我的数据集中有一个变量,如下所示:

IBM, Oracle, Ping
IBM, Ping
HP, IBM, Nagios
Solarwinds, HP, Nagios
BMC, Solarwinds, HP, IBM, Nagios, SCOM

我想将这些公司中的每一个分开,并为每一个创建新变量。例如,我希望 IBM、Nagiog、SCOM 等有一个不同的变量。我该怎么做?

【问题讨论】:

  • 没有足够的示例材料可以使用。 (不是我在没有工作示例的情况下对所有问题投反对票。)
  • 感谢您的推荐。我是 R 的新手,所以仍然没有足够的知识来提出正确的问题。今后我会牢牢记住这一点! :)

标签: r rstudio


【解决方案1】:

我对这个问题的解读是:

  1. data.frame(例如名为“companies”)中有一个列,其中包含逗号分隔的公司字符串。
  2. 您希望拆分这些值,并为每个唯一的公司创建列。
  3. 我不知道你想用什么来填充这些列,所以我假设你想创建某种二进制或“存在”指示器。

如果我的阅读正确,请尝试我的“splitstackshape”包中的cSplit_e

cSplit_e(mydf, "companies", ",", type = "character", mode = "binary", fill = 0)
#                                companies companies_BMC companies_HP companies_IBM
# 1                      IBM, Oracle, Ping             0            0             1
# 2                              IBM, Ping             0            0             1
# 3                        HP, IBM, Nagios             0            1             1
# 4                 Solarwinds, HP, Nagios             0            1             0
# 5 BMC, Solarwinds, HP, IBM, Nagios, SCOM             1            1             1
# companies_Nagios companies_Oracle companies_Ping companies_SCOM companies_Solarwinds
# 1                0                1              1              0                    0
# 2                0                0              1              0                    0
# 3                1                0              0              0                    0
# 4                1                0              0              0                    1
# 5                1                0              0              1                    1

这假设我们开始的数据是:

mydf <- data.frame(
  companies = c("IBM, Oracle, Ping",
                "IBM, Ping",
                "HP, IBM, Nagios",
                "Solarwinds, HP, Nagios",
                "BMC, Solarwinds, HP, IBM, Nagios, SCOM"))

还有一个drop 参数,如果您想删除原始列,可以将其设置为TRUE

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 2014-07-13
    • 2020-12-03
    • 2017-04-06
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多