我有一个非常混乱的数据框架,其中一列的值可以理解为人类而不是计算机,有点像下面的那样.
df<-data.frame("id"=c(1:10),
"colour"=c("re d", ", red", "re-d","green", "gre, en", ", gre-en", "blu e", "green", ", blue", "bl ue"))
Run Code Online (Sandbox Code Playgroud)
我可以过滤掉df str_detect
df %>% filter(str_detect(tolower(colour), pattern = "gr"))
Run Code Online (Sandbox Code Playgroud)
但我想将所有过滤后的结果重命名为相同的值,以便我可以纠缠它.
有什么建议?
我试图用模式分开,但没有成功.
编辑:不是全部.在我正在使用的df中不需要空格.让我们说在制作df中写绿色的正确方法是"gr.een".
编辑2:
想要的结果与伪造的颜色拼写只是为了得到一个想法:
id colour
1 r. ed
2 r. ed
3 r. ed
4 gr. een
6 gr. een
7 gr. een
8 blu. e
9 gr. een
10 blu. e
Run Code Online (Sandbox Code Playgroud) 我读过其他具有类似标题的问题,但没有运气解决我的问题。我有一个包含两列的数据框:销售额和规模。sales 是数字,size 是字符,有“Small (1-20)”、“Medium (20-50)”、“Large (50-100)”和“Extra Large (>200)”。我想制作一个直方图,其中箱宽度等于不同尺寸。与breaks= seq(.....)间隔是相同的。有什么方法可以使用 ggplot2 在我的垃圾箱中设置不同的间隔吗?
如果这是重复的,我很抱歉,但我确实尝试在其他问题中找到答案,但要么没有提出这个确切的问题,要么我太愚蠢而无法理解解释。
mydf <- data.frame(
Sales = c(301, 5, 4, 26, 19, 82, 111, 41, 29, 12),
Size = c("Extra Large (>200)", "Small (1-20)", "Small (1-20)", "Medium (21-50)",
"Small (1-20)", "Large (51-200)", "Large (51-200)",
"Medium (21-50)", "Medium (21-50)", "Small (1-20)" ))
mydf %>% ggplot(aes(Sales))+geom_histogram(aes(y=..count..))
Run Code Online (Sandbox Code Playgroud)
创建的直方图需要一些带宽调整,在这里我想使用已经描述的类别的“宽度”。
我有一个两列的数据集,我想对其进行重塑。
看看这个假的 df:
df=pd.DataFrame([
['Alex', 'Apple'],['Bob', 'Banana'],['Clark', 'Citrus'], ['Diana', 'Banana'], [
'Elisa', 'Apple'], ['Frida', 'Citrus'], ['George', 'Citrus'], ['Hanna', 'Banana']
],columns=['Name', 'Fruit'])
Run Code Online (Sandbox Code Playgroud)
我想要四列;名称:Apple、Banana 和 Citrus,其中后三个是布尔值(真/假)。
我看过 inte unstack 但它确实不是我想要的。
我有一个数据框,其中的条目具有相同的含义,我想将它们放在同一行(和列)中。我的模拟df:
my = pd.DataFrame(
{'fruit': ['Apple', 'Banana', 'Pomme', 'aeble', 'Banan', 'Orange', 'Apelsin'],
'bites': [1, 2, 3, 1, 2, 3, 4]})
Run Code Online (Sandbox Code Playgroud)
以及我想要的是:
我最接近的是
my.loc['Apple'] +=my.loc['Pomme'] += my.loc['aeble']
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更简单的方法。