小编plu*_*uke的帖子

R Markdown中的内联dplyr

我想把一些R代码内联到我写的一篇文章中.以下是好的:

The quick brown fox jumped over \`r 2+2\` lazy dogs
Run Code Online (Sandbox Code Playgroud)

快速的棕色狐狸跳过4只懒狗

但是当我尝试将dplyr与以下数据帧组合时:

structure(list(name = structure(c(2L, 1L, 3L), .Label = c("Cat", 
"Dog", "Horse"), class = "factor"), n = c(4L, 3L, 8L)), .Names = c("name", 
"n"), class = "data.frame", row.names = c(NA, -3L))
Run Code Online (Sandbox Code Playgroud)

它破了:

The quick brown fox jumped over \`r as.numeric(temp %>% filter(name=="dog") %>% select(n)\` lazy dogs

Quitting from lines 80-81 (QuickBrown.Rmd)
Error in base::parse(text = code, keep.source = FALSE) : 
 <text>:2:0: unexpected end of input
1: as.numeric(temp %>% filter(name=="Dog") …
Run Code Online (Sandbox Code Playgroud)

r r-markdown dplyr

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

dplyr 中的 COUNTIF 等效项汇总

我有一个数据框,列出了参加活动 (Sub) 的学生总数 (Stu) 和每组学生人数 (ID):

     ID   Stu   Sub
  (int) (int) (int)
1   101    80    NA
2   102   130    NA
3   103    10    NA
4   104   210    20
5   105   180    NA
6   106   150    NA
Run Code Online (Sandbox Code Playgroud)

我想知道参与活动(Sub > 0)或不参与(Sub is.na)的大小范围(> 400,> 200,> 100,> 0)的团体数量

output <- structure(list(ID = c(101L, 102L, 103L, 104L, 105L, 106L), 
                       Stu = c(80L, 130L, 10L, 210L, 180L, 150L), 
                       Sub = c(NA,NA, NA, 20L, NA, NA)), 
                  .Names = c("ID", "Stu", "Sub"), 
                  class = c("tbl_df", "data.frame"), 
                  row.names = …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

可能不存在的R dplyr删除列select(-name)

library(ggplot2)
library(dplyr)

diamonds <- diamonds %>% select(-clarity)

# this works fine
# but doing it again gives me an error
diamonds %>% select(-clarity)

Error in is_character(x) : object 'clarity' not found
Run Code Online (Sandbox Code Playgroud)

如何安全删除/取消选择?

select r dplyr

4
推荐指数
2
解决办法
56
查看次数

Lazarus Pascal哔哔命令

我在Windows上运行Lazarus.我真的想让节目"嘟嘟".看来你可以在Pascal中使用:

windows.beep(300,500);
Run Code Online (Sandbox Code Playgroud)

但不是在拉撒路!我可以使用另一个命令吗?

更新:

sysutils.beep()
Run Code Online (Sandbox Code Playgroud)

这有效,但我真的想设置声音的频率和持续时间

pascal lazarus

3
推荐指数
2
解决办法
4145
查看次数

g简化不简化R中的shapefile

我无法在R中简化shapefile

Shapefile来自:https://geoportal.statistics.gov.uk/Docs/Boundaries/Local_authority_district_(GB)_2014_Boundaries_ (Generalised_Clipped).zip

library(tmap)
library(maptools)
library(ggmap)

England <- readOGR(dsn = "...")

#works fine
print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" )) 

# simplify the polygons
England<-gSimplify(England,tol=0.01, topologyPreserve=TRUE)

print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" )) 
Run Code Online (Sandbox Code Playgroud)

给出错误:

Error in process_fill(data, g$tm_fill, gborders, gt, gf, z = z + which(plot.order ==  : 
Fill argument neither colors nor valid variable name(s)
Run Code Online (Sandbox Code Playgroud)

如果查看英国数据对象,您可以看到它已从大空间polygonDataFrame更改为大空间多边形并删除了@data

相反,如果您尝试仅简化Shapefile中的多边形:

England@polygons<-gSimplify(England@polygons,tol=0.01, topologyPreserve=TRUE)
Run Code Online (Sandbox Code Playgroud)

它说:

Error in gSimplify(England@polygons, tol = 0.01, topologyPreserve = TRUE) : 
cannot get a …
Run Code Online (Sandbox Code Playgroud)

r shapefile

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

在R中向量化复杂的dplyr语句

我正在努力计算参加课程的学生数量,从那些能够参加课程的学生,并非所有学校都提供计算机,不同的学校提供​​英语,那些能够学习计算和英语的学生会有所不同.例如,使用下面的测试数据,我们有:

df <- read.csv(text="school, student, course, result
      URN1,stu1,comp,A
      URN1,stu2,comp,B
      URN1,stu3,comp,C
      URN1,stu1,Eng,D
      URN1,stu1,ICT,E
      URN2,stu4,comp,A
      URN1,stu1,ICT,B
      URN2,stu5,comp,C
      URN3,stu6,comp,D
      URN3,stu6,ICT,E
      URN4,stu7,Eng,E
      URN4,stu8,ICT,E
      URN4,stu8,Eng,E
      URN5,stu9,comp,E
      URN5,stu10,ICT,E")
Run Code Online (Sandbox Code Playgroud)

[1]"由58.3333333333333%可能的学生参加"

[1]"33.3333333333333%可能的学生参加了"

[1]"信息通信技术由38.4615384615385%的可能学生参加"

我有以下循环(嘘!)来做到这一点:

library(magrittr)
library(dplyr)

for(c in unique(df$course)){
  # c <- "comp"
  #get URNs of schools offering each course
  URNs <- df %>% filter(course == c) %>% distinct(school) %$% school
  #get number of students in each school offering course c
  num_possible <- df %>% filter(school %in% URNs) %>% summarise(n = n()) %$% n
  #get number of students …
Run Code Online (Sandbox Code Playgroud)

r vector dplyr

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

将min命令映射到haskell中的多级列表

我想在一组列表中找到最小值

map min [[1, 3], [2, 7],[9, 6]]
Run Code Online (Sandbox Code Playgroud)

我想要这个输出

[[1],[2],[6]]
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

* No instance for (Show ([Integer] -> [Integer]))
arising from a use of `print'
(maybe you haven't applied a function to enough arguments?)
* In a stmt of an interactive GHCi command: print it
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

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

在haskell中,GHCi命令行上的let x =和x =之间有什么区别吗?

我在Haskell GHCi中写一个简单的声明

myPi = 3.14
Run Code Online (Sandbox Code Playgroud)

我也可以这样写

let myPi = 3.14
Run Code Online (Sandbox Code Playgroud)

这两个声明之间的这个非常简单的示例有什么区别?我知道let的额外功能,但这里不需要

haskell let ghci

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

水晶报告中的全局变量

我试图在水晶报告中保持一定数量的教师,支持人员和管理人员,我决定使用全局变量来做这件事,我知道在其他方面它是可能的,但我想给全局变量一个去.

    WhileReadingRecords;
Global NumberVar TotalSManagement;
Global NumberVar TotalSTeachers;
Global NumberVar TotalSSupport;
Global NumberVar TotalLManagement;
Global NumberVar TotalLTeachers;
Global NumberVar TotalLSupport;

if{staff_addresses_txt.Staff category} = "MANA" and {staff_addresses_txt.Name} = "CTK:Lewisham" then
    TotalLManagement = TotalLManagement + 1
else
if{staff_addresses_txt.Staff category} = "TEAC" and {staff_addresses_txt.Name} = "CTK:Lewisham" then
    TotalLTeachers = TotalLTeachers + 1
else
if{staff_addresses_txt.Staff category} = "SUPP" and {staff_addresses_txt.Name} = "CTK:Lewisham" then
    TotalLSupport = TotalLSupport + 1
else
if{staff_addresses_txt.Staff category} = "MANA" and {staff_addresses_txt.Name} = "CTK:St Mary's" then
    TotalSManagement = TotalSManagement + 1 …
Run Code Online (Sandbox Code Playgroud)

global-variables crystal-reports

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

在Haskell中,为什么GHCi cmd行允许我更改变量的值,所以从文本文件加载时不允许这样做

我可以在GHCi中执行以下操作,我知道在Haskell中不可能做到这一点:

Prelude> myPi = 3.14
Prelude> myPi = 4
Prelude> myPi
4
Run Code Online (Sandbox Code Playgroud)

但是如果我把它放在文件中,就会给我一个错误

-- main.hs
myPi = 3.14
myPi = 4
Run Code Online (Sandbox Code Playgroud)
Prelude> :l main.hs
main.hs:2:1: error:
    Multiple declarations of ‘myPi’
    Declared at: main.hs:1:1
                 main.hs:2:1
Run Code Online (Sandbox Code Playgroud)

GHCi在做什么,以允许我“重新声明”变量。有办法阻止这种情况发生吗?

haskell ghci

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

将数字转换为python中带有前缀0s的格式化字符串

我想将python中的数字转换为3个字符的字符串,前缀为0.例如:

8  = "008"
12 = "012"
6  = "006"
Run Code Online (Sandbox Code Playgroud)

谢谢

python python-3.x

0
推荐指数
2
解决办法
617
查看次数