我正在尝试使用1000之间的一组随机数在R中创建密度曲线,并将小于或等于某个值的部分着色.有很多解决方案涉及geom_area或geom_ribbon,但它们都需要一个yval,我没有(它只是1000个数字的向量).有关如何做到这一点的任何想法?
另外两个相关问题:
stat_ecdf它生成一个)做同样的事情,或者根本不用它?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) 我正在尝试编写代码来比较几个列的值,但我事先不知道我将拥有多少列。数据将如下所示:
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)
编辑:我想看看这些值(将是数字)是否相等
我正在尝试获取在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的列表多次.