小编iNy*_*yar的帖子

R - 在单个变量中将多个值作为一个字符串处理

在a中data.frame,我有一个用于文本语言的分类变量.但是,虽然大多数文本只使用一种语言,但有些语言只有多种语言.在我的数据中,它们出现在同一列中,除以逗号:

text = c("Text1", "Text2", "Text3")
lang = c("fr", "en", "fr,en")
d = data.frame(text, lang)
Run Code Online (Sandbox Code Playgroud)

视觉:

   text  lang
1 Text1    fr
2 Text2    en
3 Text3 fr,en
Run Code Online (Sandbox Code Playgroud)

我想绘制每种语言的文本数量,Text3在内部fr和内部计算en.

我找到了如何拆分,用:

d$lang <- strsplit(d$lang, ",")
Run Code Online (Sandbox Code Playgroud)

但后来我无法找到正确绘制方法,例如使用qplot像这样的条形图:

qplot(lang, data=d)
Run Code Online (Sandbox Code Playgroud)

我做得对吗?有更好的方法吗?

r

7
推荐指数
1
解决办法
339
查看次数

R - 将各种虚拟/逻辑变量从其名称转换为单个分类变量/因子

我的问题与这个另一个问题有很大的相似之处,但我的数据集有点不同,我似乎无法使这些解决方案有效.如果我误解了什么,请原谅我,这个问题是多余的.

我有一个这样的数据集:

df <- data.frame(
  id = c(1:5),
  conditionA = c(1, NA, NA, NA, 1),
  conditionB = c(NA, 1, NA, NA, NA),
  conditionC = c(NA, NA, 1, NA, NA),
  conditionD = c(NA, NA, NA, 1, NA)
  )
# id conditionA conditionB conditionC conditionD
# 1  1          1         NA         NA         NA
# 2  2         NA          1         NA         NA
# 3  3         NA         NA          1         NA
# 4  4         NA         NA         NA          1
# 5  5          1         NA …
Run Code Online (Sandbox Code Playgroud)

r

7
推荐指数
2
解决办法
5100
查看次数

如何使用 py.test 在 setup.py 上避免“未提供命令”

我已经开始了一个小的 Python 包(基于python-telegram-bot),并且想做基于测试的开发。所以我py.test用一些基本的单元测试来激活。

但是我总是收到错误消息,setup.py因为它需要一个命令作为参数,但py.test不提供任何命令。

这是 的缩短版本setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from setuptools import setup

requirements = [
    'python-telegram-bot>=5.3.0'
]

test_requirements = [
    'pytest>=3.0'
]

setup(
    name='project',
    version='0.1.0',
    packages=[
        'project',
    ],
    package_dir={'project':
                 'project'},
    entry_points={
        'console_scripts': [
            'project=project.cli:main'
        ]
    },
    include_package_data=True,
    install_requires=requirements,
    license="MIT license",
    zip_safe=False,
    test_suite='tests',
    tests_require=test_requirements
)
Run Code Online (Sandbox Code Playgroud)

py.test结果:

=========================== test session starts ==========================
platform darwin -- Python 3.6.0, pytest-3.0.6, py-1.4.32, pluggy-0.4.0
rootdir: ~/dev/project, inifile: pytest.ini
collected …
Run Code Online (Sandbox Code Playgroud)

python pytest

6
推荐指数
1
解决办法
4645
查看次数

将strsplit的结果分配给多列数据框

我试图在数据框内将字符向量分成三个不同的向量.

我的数据类似于:

> df <- data.frame(filename = c("Author1 (2010) Title of paper", 
                                "Author2 et al (2009) Title of paper",
                                "Author3 & Author4 (2004) Title of paper"),
                   stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

我想这3个信息(拆分authors,year,title)分成三个不同的列,所以,这将是:

> df
                          filename             author  year   title
 1           Author1 (2010) Title1            Author1  2010  Title1
 2     Author2 et al (2009) Title2      Author2 et al  2009  Title2
 3 Author3 & Author4 (2004) Title3  Author3 & Author4  2004  Title3
Run Code Online (Sandbox Code Playgroud)

我习惯在3个元素的向量中strsplit分割每个filename元素:

 df$temp <- strsplit(df$filename, " …
Run Code Online (Sandbox Code Playgroud)

r multiple-columns strsplit

4
推荐指数
3
解决办法
662
查看次数

如何从 Python 中的一组可能值定义一个属性?

我想初始化一个User具有属性的类,其值取自一组有限且不可变的可能值(例如,用户类型、国家/地区的简短列表......)。在 Python 中做到这一点的最佳方法是什么?

class User(object):
    def __init__(self, type, country):
        self.type = type # Possible values: [Consumer, Producer]
        self.country = country # Possible values: [UK, USA, Japan, France]
Run Code Online (Sandbox Code Playgroud)

这可能是显而易见的,但我正式限制这组可能值的原因主要是为了避免/发现错误。

我已经查看了 Python上listEnumPython中的各种解释(例如,如何在 Python 中实现枚举),但我不确定考虑到我的需求,这是否是正确的方法。特别是,从我读过的内容来看,似乎Enum是存储一个常量列表(User.typeasCONSUMERPRODUCER)......但我希望能够直接在输出中使用这些值(所以大写看起来很奇怪)。而且我不确定每个值是否有等价的数字(CONSUMER=1 ...) 的对我有用。

编辑:我可能应该补充一点,我的应用程序中的实际值是法语,因此包括非 ASCII 字符(例如,États-Unis)。走这Enum条路似乎无法保留这些字符,并且意味着然后将值“转换”为“本地化”值,这在我看来对于一个简短的列表来说很麻烦。

python initialization

4
推荐指数
1
解决办法
928
查看次数

标签 统计

r ×3

python ×2

initialization ×1

multiple-columns ×1

pytest ×1

strsplit ×1