小编Dav*_*eim的帖子

否则如果循环在R中运行得非常慢

我正在进行一项研究项目,研究使人更有可能投票的因素,重点是人们离开投票站的距离.我是数百万人的完整选民登记和选民历史.有几种方式可以让某人投票(亲自,缺席,早期或临时)或不投票(未注册,注册但未投票,或没有资格投票).我的数据附有一栏(29),表明某人如何在某次选举中投票.NULL表示未注册,V表示亲自等.

对于回归分析,我想为每个选民类型创建一个不同的列(1表示是,0表示否,列号68-74)和另一个1/0列(数字75)表示是否有人投票.我在下面写的代码应该可以解决这个问题,但它在我的计算机上运行速度非常慢,甚至在一小时后也无法进入第1000行.除速度外,它完美无缺.我已被批准使用我大学的超级计算机*,但我想找出一个更快的算法.我的笔记本电脑和超级计算机上都有R和STATA,并且很乐意使用它们.

dcv.new <- read.csv("VoterHist.csv", header=TRUE)
# I previously set columns 68-75 to default to 0
for(i in 1:nrow(dcv.new))
{
  if(is.na(dcv.new[i,29]))
  {
    dcv.new[i,69] <- 1
  }
  else if(dcv.new[i,29]=="V")
  {
    dcv.new[i,68] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="A")
  {
    dcv.new[i,70] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="N")
  {
    dcv.new[i,71] <- 1
  }
  else if(dcv.new[i,29]=="E")
  {
    dcv.new[i,72] <- 1
  }
  else if(dcv.new[i,29]=="Y")
  {
    dcv.new[i,73] <- 1
  }
  else if(dcv.new[i,29]=="P")
  {
    dcv.new[i,74] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="X")
  { …
Run Code Online (Sandbox Code Playgroud)

r

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

我应该使用MS SQL Management Studio中的模板来创建新的触发器吗?

如果使用GUI在MS SQL Management Studio中创建新触发器,它将为您提供以下模板:

--====================================
--  Create database trigger template 
--====================================
USE <database_name, sysname, AdventureWorks>
GO

IF EXISTS(
  SELECT *
    FROM sys.triggers
   WHERE name = N'<trigger_name, sysname, table_alter_drop_safety>'
     AND parent_class_desc = N'DATABASE'
)
    DROP TRIGGER <trigger_name, sysname, table_alter_drop_safety> ON DATABASE
GO

CREATE TRIGGER <trigger_name, sysname, table_alter_drop_safety> ON DATABASE 
    FOR <data_definition_statements, , DROP_TABLE, ALTER_TABLE> 
AS 
IF IS_MEMBER ('db_owner') = 0
BEGIN
   PRINT 'You must ask your DBA to drop or alter tables!' 
   ROLLBACK TRANSACTION
END
GO
Run Code Online (Sandbox Code Playgroud)

我应该使用这个模板吗?

我对触发器一无所知,但我认为我需要使用它们.在这种情况下的目的是在表的插入,我需要更新其中一个字段.

请帮我一下!

sql sql-server triggers

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

为什么SQL查询的结果不会按照我期望的顺序返回?

如果将项目插入表中,然后我编写一个查询,例如select * from table,为什么结果不符合我的预期?

mysql sql sql-server sqlite postgresql

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

从两个表中删除行

我正在尝试同时从两个不同的表中删除行.表格看起来像这样:

TABLE - Value
-----------
ID
Field
<some other stuff...>

TABLE - Srch
-----------
Value_ID
Srch_ID
<some other stuff...>
Run Code Online (Sandbox Code Playgroud)

我想删除所有来自行VALUE哪里field等于"成功",并删除该行SRCH链接到VALUE通过value_id.在SRCH那里可以有多个相同的行value_id.

这个SQL语句会是什么样的?

sql oracle

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

基本SQL Select语句 - 如何找到Sum?

我想在表格中找到具体值的总和和数量.

在我的具体情况下,该表被调用product.该表的列名'id,product_id,quantityshipping_price.

该表包含:(基于SELECT * FROM product;)

product_id:1    quantity:1     end_price:15     shipping_price:1
product_id:2    quantity:2     end_price:15     shipping_price:0
product_id:1    quantity:1     end_price:15     shipping_price:1
product_id:2    quantity:1     end_price:15     shipping_price:0
product_id:1    quantity:1     end_price:15     shipping_price:1
product_id:3    quantity:1     end_price:15     shipping_price:0
Run Code Online (Sandbox Code Playgroud)

我需要一个SQL语句,将选择行的量与同product_id,得到的总和quantity,end_priceshipping_price.

对于此示例,我希望SQL语句返回第1项:

product_id:1    quantity:3    end_price:45    shipping_price:3
Run Code Online (Sandbox Code Playgroud)

sql sum aggregate-functions

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

如何优化此SQL查询(使用索引)?

有一个查询运行速度比我想要的慢.查询已经是正确的,我已经重构了它,但我不能让它运行得足够快.在可能的情况下,谓词已经具备了Sarg-able功能.它已经正确使用连接,不请求额外的表,并且不会不必要地复制行或使用嵌套子查询以减慢它的速度.

我不是DBA,我不知道如何选择一个好的索引来加快查询速度.我可以改变桌子结构; 没有DBA负责数据库,我在数据库服务器上拥有这样做的权限.

如何优化SQL查询?

sql indexing

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

SQL - 如果某些内容为真,如何使用二进制指示符输出结果集?

我有以下表格:

users (id,name)
items (id,title)
users_items (user_id,item_id)
Run Code Online (Sandbox Code Playgroud)

users并且items应该是非常自我解释的.users_items确定用户是否"喜欢"某个项目.因此,如果id为5的用户拥有id为7的favourited项,则users_items表将分别保存user_id和item_id的记录(5,7).

我希望能够输出所有项目,但是在每个项目旁边说明当前登录的用户是否喜欢该项目.

显然,我可以获取所有项目,然后循环遍历它们并执行单独的mysql调用,以查看是否从users_items返回任何具有相关用户ID和课程ID的行,但是有一种更好的方法可以在1函数中执行此操作.也许有一些花哨的加入?

提前致谢.

mysql sql

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

如何在R中找到每个因子的最小行数?

我有一个数据框,叫它A,看起来像这样:

GroupID  Dist1   Dist2 ...
1        4       4 
1        5       4 
1        3       16 
2        0       4 
2        7       2 
2        8       0 
2        6       4 
2        7       4 
2        8       2 
3        7       4 
3        5       6
...
Run Code Online (Sandbox Code Playgroud)

GroupID是一个因子,Dist1,Dist2是整数.

我有一个派生数据框,SummaryA

GroupID  AveD1  AveD2 ...
1        4       8 
2        6       2
3        6       5
...
Run Code Online (Sandbox Code Playgroud)

对于每个groupID,我需要找到具有最小值的ROW NUMBER,进行进一步操作,并将数据提取到我的摘要集.例如,我需要:

GroupID  MinRowD1  
1        1 
2        4 
3        11 
Run Code Online (Sandbox Code Playgroud)

在比赛中,我选择哪个并不重要,但我不知道如何得到这个.我不能使用which(),因为它不能很好地操作因素,我不能使用ave(Fun = min),因为我需要的是位置,而不是最小值.如果我做的事情与每组的最小匹配,我可以有多个匹配,这搞砸了.

有关如何做到这一点的任何建议?

r dataframe

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

从表变量中选择的数据与插入的顺序不同?

我有一个数据类型为Varchar(MAX)的表变量.

我首先插入值'header'然后基于内连接,我接下来将'Details'插入到同一个表变量中.最后,我正在插入"预告片".

我得到的输出顺序为:'header',然后是'trailer',最后是'details'.

我所需的输出顺序如下:

Header 
Detail
Trailer
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个订单:

Header
Trailer
Detail
Run Code Online (Sandbox Code Playgroud)

注意:我无法在选择中使用asc/desc.我按照我需要的顺序插入.

sql sql-server

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

为某些列选择DISTINCT,为其他列选择最小值(什么是`Group by`?)

我有一个TableA有两列的表:MyName nvarchar(100)MyDateTime DateTime.每个MyName具有不同DateTimes的记录可以有多个.我试图返回一个记录集,其中包含MyName表中的每个值,每个值最早MyDateTime.

这可以返回不同的MyNames:

SELECT DISTINCT([MyName]) FROM TableA
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的UNION语句,但我的所有尝试都被DISTINCT()关键字抛弃了.例如,以下查询会查找所有时间,而不仅仅是每个时间的最小值:

SELECT DISTINCT([MyName]), [MyDateTime] FROM TableA
Run Code Online (Sandbox Code Playgroud)

努力想出正确的SQL语法来实现这一目标.有什么帮助吗?

sql aggregate-functions sql-server-2008-r2

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