小编use*_*502的帖子

如何在ggplot中遮蔽部分密度曲线(没有y轴数据)

我正在尝试使用1000之间的一组随机数在R中创建密度曲线,并将小于或等于某个值的部分着色.有很多解决方案涉及geom_areageom_ribbon,但它们都需要一个yval,我没有(它只是1000个数字的向量).有关如何做到这一点的任何想法?

另外两个相关问题:

  1. 是否有可能对累积密度函数(我目前正在使用stat_ecdf它生成一个)做同样的事情,或者根本不用它?
  2. 有没有办法编辑geom_vline所以它只会达到密度曲线的高度,而不是整个y轴?

代码:( geom_area尝试编辑我发现的一些代码是失败的.如果我ymax手动设置,我只需要一个列占据整个图,而不仅仅是曲线下面的区域)

set.seed(100)

amount_spent <- rnorm(1000,500,150)
amount_spent1<- data.frame(amount_spent)
rand1 <- runif(1,0,1000)
amount_spent1$pdf <- dnorm(amount_spent1$amount_spent)

mean1 <- mean(amount_spent1$amount_spent)

#density/bell curve
ggplot(amount_spent1,aes(amount_spent)) +
   geom_density( size=1.05, color="gray64", alpha=.5, fill="gray77") +
   geom_vline(xintercept=mean1, alpha=.7, linetype="dashed", size=1.1, color="cadetblue4")+
   geom_vline(xintercept=rand1, alpha=.7, linetype="dashed",size=1.1, color="red3")+
   geom_area(mapping=aes(ifelse(amount_spent1$amount_spent > rand1,amount_spent1$amount_spent,0)), ymin=0, ymax=.03,fill="red",alpha=.3)+
   ylab("")+ 
   xlab("Amount spent on lobbying (in Millions USD)")+
   scale_x_continuous(breaks=seq(0,1000,100))
Run Code Online (Sandbox Code Playgroud)

r ggplot2 density-plot

12
推荐指数
1
解决办法
4460
查看次数

R - 如何比较两列以上的值

我正在尝试编写代码来比较几个列的值,但我事先不知道我将拥有多少列。数据将如下所示:

X   Val1    Val2    Val3    Val4
A   1        1        1       2
B   NA       2        2       2
C   3        3        3       3
Run Code Online (Sandbox Code Playgroud)

该代码应为 A 行和 B 行返回“失败”,为 C 行返回“通过”,但需要能够处理不断变化的列数。我不知道如何在不嵌套几个 for 循环的情况下做到这一点,但必须有某种方法使用 apply 或 sapply 来迭代第 2 列: length(df)

编辑:我想看看这些值(将是数字)是否相等

r

2
推荐指数
1
解决办法
4138
查看次数

Python - 将元组列表插入SQLite

我正在尝试获取在python中创建的元组列表,并将它们导入到SQLite中的表中.以下代码有效:

conn = sqlite3.connect('emaildb4.sqlite')
cur = conn.cursor() 
cur.execute('''CREATE TABLE Counts (email TEXT, count INTEGER)''')
Run Code Online (Sandbox Code Playgroud)

但是,一旦我尝试插入字典,看起来像这样,并被调用Counts:

[('txstate.edu', 17), ('media.berkeley.edu', 56), ('vt.edu', 110), ('whitman.edu', 17), ('lancaster.ac.uk', 14), ('rsmart.com', 8), ('fhda.edu', 1), ('uct.ac.za', 96), ('unicon.net', 9), ('utoronto.ca', 1), ('loi.nl', 9), ('indiana.edu', 178), ('et.gatech.edu', 17), ('umich.edu', 491), ('gmail.com', 25), ('ucdavis.edu', 1), ('stanford.edu', 12), ('bu.edu', 14), ('caret.cam.ac.uk', 157), ('ufp.pt', 28), ('iupui.edu', 536)]
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我只获得了一个Out[318]: <sqlite3.Cursor at 0x1b3e6500>,而且没有在SQLite表中进行任何更改.

码:

cur.executemany('insert into Counts (email, count) values (?,?)',Counts)
Run Code Online (Sandbox Code Playgroud)

我也尝试将元组更改为字典/按名称引用值,并循环遍历运行cur.execute的列表多次.

python sqlite

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

标签 统计

r ×2

density-plot ×1

ggplot2 ×1

python ×1

sqlite ×1