我刚刚在Mac上更新了R,R Studio和一些软件包,包括ggplot2和gridExtras.现在gridExtras在基本绘图失败时出现错误:
"在'gList"中只允许'grobs'"
这里有一些应该有效的代码,但不是:
library(ggplot2)
p1 = qplot(1:10,rnorm(10))
p2 = qplot(1:10,rnorm(10))
library(gridExtra)
grid.arrange(p1, p2, ncol=2, main = "Main title")
Run Code Online (Sandbox Code Playgroud)
这会转储出以下错误:
Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, :
only 'grobs' allowed in "gList"
In addition: Warning message:
In grob$wrapvp <- vp : Coercing LHS to a list
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
我有一年的数据看起来像这样:
datetime, key, value
1/1/15, 7k Steps, 1
1/1/15, Ate Poorly, 1
1/1/15, Audiobook, 1
1/1/15, Befriend, 1
1/1/15, Called Mom, 1
1/1/15, Code, 1
1/1/15, Create, 1
1/1/15, Critical, 1
1/1/15, Emailed Friend, 1
1/2/15, 10k Steps, 1
1/2/15, Ate Poorly, 1
1/2/15, Audiobook, 1
1/2/15, Befriend, 1
1/2/15, Called Mom, 1
1/2/15, Create, 1
1/2/15, Emailed Friend, 1
1/2/15, Exercise, 1
1/2/15, Friend Contact, 1
1/2/15, Great Day, 1
1/2/15, Write, 1
1/3/15, 7k Steps, 1
1/3/15, Ate …
Run Code Online (Sandbox Code Playgroud) 我一直在对一大堆文件进行大量文本处理,包括大型 CSV 文件和大量小型 XML 文件。有时我在做聚合计数,但很多时候我在做 NLP 类型的工作,以更深入地查看这些文件中的内容,而不是标记或已经结构化的内容。
我一直在使用多处理库在多个 CPU 上执行这些计算,但我已经爱上了 Dask 背后的想法,并且在网络上和同事都强烈推荐它。
我在这里问了一个关于 Dask 性能的类似问题:
和 MRocklin ( /sf/users/43163151/ ) 让我知道加载大量小文件可能会破坏性能。
然而,当我在单个大文件(200mb)上运行它时,我仍然没有让它表现得很好。下面是一个例子:
我有一个 900,000 行的推文 CSV 文件,我想快速加载它并解析“created_at”字段。以下是我完成的三种方法以及每种方法的基准。我在配备 16GB 内存的新 i7 2016 MacBook Pro 上运行此程序。
import pandas
import dask.dataframe as dd
import multiprocessing
%%time
# Single Threaded, no chunking
d = pandas.read_csv("/Users/michaelshea/Documents/Data/tweet_text.csv", parse_dates = ["created_at"])
print(len(d))
Run Code Online (Sandbox Code Playgroud)
CPU 时间:用户 2 分 31 秒,系统:807 毫秒,总计:2 分 32 秒挂墙时间:2 分 32 秒
%%time
# Multithreaded chunking
def parse_frame_dates(frame):
frame["created_at"] = pandas.to_datetime(frame["created_at"]) …
Run Code Online (Sandbox Code Playgroud) 在没有一大堆“for”和“if”循环的情况下,无法找到将一个列表的元素与另一个列表中的元素进行匹配的python解决方案。我希望找到一种更好的方法来做到这一点。我有一些大的迭代循环,它们通过多个列表来执行匹配。在比赛中,我希望删除列表中的元素。这里有两个例子:
def score_and_retweet(auth):
api = tweepy.API(auth)
for tweet in api.home_timeline(count=100, include_rts=0):
for goodword in tweet_whitelist:
if goodword in tweet.text and tweet.retweet_count >= 2:
try:
api.retweet(tweet.id_str)
except tweepy.error.TweepError:
error_id = tweet.id_str
Run Code Online (Sandbox Code Playgroud)
和
t = time.localtime()
if t.tm_hour is 14 and (t.tm_wday is 1 or t.tm_wday is 4):
htmlfiles = glob.glob(html_file_dir+'/*.html')
for file in htmlfiles:
for badword in filename_badwords:
if badword in file:
try:
htmlfiles.remove(file)
except ValueError:
error = "already removed"
Run Code Online (Sandbox Code Playgroud)