我有两个数据帧 - 一个包含名称和限制范围(只有几百行,最多 1000),需要分配给一个“测量”数据帧,该数据帧可以包含数百万行(或数百万行) )。
目前我正在做 left_join 和过滤值以获得分配给每个测量的特定限制。然而,这是非常低效的并且花费了大量资源。对于较大的数据帧,代码甚至无法运行。
任何关于更有效解决方案的想法都会有所帮助。
library(dplyr)
## this one has got only few houndreds rows
df_limits <- read.table(text="Title station_id limit_from limit_to
Level_3_Low 1 0 70
Level_2_Low 1 70 90
Level_1_Low 1 90 100
Optimal 1 100 110
Level_1_High 1 110 130
Level_2_High 1 130 150
Level_3_High 1 150 180
Level_3_Low 2 0 70
Level_2_Low 2 70 90
Level_1_Low 2 90 100
Optimal 2 100 110
Level_1_High 2 110 130
Level_2_High 2 130 150
Level_3_High 2 150 …Run Code Online (Sandbox Code Playgroud) 我已经写了一个措辞,将一个很长的字符串写成小块,在完成一个项目的措辞之后,它将它从@input中移除并继续,直到它找不到任何项目的短语.我正在根据LIKE模式选择项目.
在某些情况下,它会选择消息的其他部分,然后以不定式循环结束.
我希望使用LIKE子句选择的模式格式为:
(1至9的任何数字)+(仅可变长度AZ)+'/'+(仅可变长度AZ)+ Cr或Lf或CrLf的空间.
--This is what I do have:
DECLARE @match NVarChar(100)
SET @match = '%[1-9][a-z]%'
DECLARE @input1 varchar(max),@input2 varchar(max)
SET @input1 ='1ABCD/EFGH *W/17001588 *RHELLO SMVML1C'
DECLARE @position Int
SET @position = PATINDEX(@match, @input1);
SELECT @position;
--after the loop- it is also 'catching' the 1C at the end of the string:
SET @input2 = '*W/17001588 *RHELLO SMVML1C'
SET @position = PATINDEX(@match, @input2);
SELECT @position
---In order to eliminate this, I have tried to change @match:
SET @match = …Run Code Online (Sandbox Code Playgroud) 我每天都在处理日常报道.这非常耗时.基本上我需要发送电子邮件,其中包含昨天销售与上周和月份销售的简要比较.这工作得很好.完成此操作后,邮件将粘贴到新工作表,然后我必须将其复制并粘贴到Outlook中的新电子邮件中.
是否有可能创建将在Outlook中打开新邮件的宏?所以我将能够插入我的文字.我能够编写将直接从Excel发送它的宏,但这不是我真正想要的,因为报告的某些部分必须通过手动查看数字来完成.
提前谢谢了!
代码来自略微编辑的宏.我试图删除"凌乱的代码",但它无法正常工作.其目的是将BF列中的数据从A排序到Z.
Dim InSheet As Worksheet
Set InSheet = ThisWorkbook.Worksheets("A to Z")
Dim LastRow as Integer
LastRow = InSheet.Cells(Rows.Count, 58).End(xlUp).Row
InSheet.Select
Columns("BF:BF").Select
InSheet.Sort.SortFields.Clear
InSheet.Sort.SortFields.Add Key:=Range( _
"BF1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With InSheet.Sort
.SetRange Range("A1:BF" & LastRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Run Code Online (Sandbox Code Playgroud)
所以我试过这个并没有用:
Dim InSheet As Worksheet
Set InSheet = ThisWorkbook.Worksheets("A to Z")
Dim LastRow as Integer
LastRow = InSheet.Cells(Rows.Count, 58).End(xlUp).Row
InSheet.Columns("BF:BF")
InSheet.Sort.SortFields.Clear
InSheet.Sort.SortFields.Add Key:=Range( _
"BF1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= …Run Code Online (Sandbox Code Playgroud) 是否可以在 Excel 数字格式中使用多个条件?
我需要以下内容:
number format
7000 7
125 0
-8054 (8)
-149 (0)
Run Code Online (Sandbox Code Playgroud)
当我使用时:
#,###, ;(#,###,)
Run Code Online (Sandbox Code Playgroud)
除非数字小于 -499,否则它会正常工作,显示为 (0)
我试过了
[>=0]#,###, ;[>-500]("0");(#,###,)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但问题是当小于 500 0 的数字不显示时。
所以我尝试过:
[<500],"0" ;[>=0]#,###, ;[>-500]("0");(#,###,)
Run Code Online (Sandbox Code Playgroud)
但excel不能接受这种编号格式。有任何想法吗?
非常感谢!
我有一个看起来像这样的表:
+------+-------+-------------+
ID_Loc Type Data
+------+-------+-------------+
ABC RMKS Hello
ABC NAM Joe Smith
ABD NAM Peter Hill
ABD RMKS Bye Bye
ABD NAM Freddy Tall
ABE NAM Loran Bennett
ABE RMKS Bye Bye
ABF NAM Liv Claris
ABF RMKS Bye Bye
+------+-------+-------------+
Run Code Online (Sandbox Code Playgroud)
我需要选择所有ID_Loc WHERE DATA NOT LIKE'Hello'.当我尝试:
SELECT distinct ID_loc FROM data_full WHERE DATA NOT LIKE '% Hello'
Run Code Online (Sandbox Code Playgroud)
这也选择ID_Loc:'ABC',其中包含Data中的'Hello'.另外,由于这会影响相当多的行或行,如果我可以将查询指向仅查看使用了类型RMKS的行,那将会很好.
我正在使用MS SQL Server 2008
SQL小提琴地址是:http://sqlfiddle.com/#!6/38130/6
任何帮助将非常感激.
我正在尝试从 MySQL 数据库中获取一维数组中的列表或电子邮件。但是,我得到的是多维数组,而不是数组:
$query = "SELECT DISTINCT `EmailAddress` FROM `Emails` WHERE `JobID` = 1";
$result = $conn->query($query);
if (!$result) {
printf("Query failed: %s\n", $mysqli->error);
exit;
}
while ($row = $result->fetch_row()) {
$rows[] = $row;
}
$result->close();
$conn->close();
var_dump($rows); // This will return array(2) { [0]=> array(1) { [0]=> string(24) "abc@abc.com" } [1]=> array(1) { [0]=> string(17) "hello@gmail.com" } }
//This is how array should be
$MyV = array("abc@abc.com", "hello@gmail.com");
var_dump($MyV); //this is an array I need to have: array(2) { …Run Code Online (Sandbox Code Playgroud)