论证的要点如下:
我编写的函数考虑了一个参数,一个字母数字字符串,并且应该输出一个字符串,其中该字母数字字符串的每个元素的值被切换以进行某些"映射".MRE如下:
#This is the original and switches value map
map = data.table(mapped = c(0:35), original = c(0:9,LETTERS))
#the function that I'm using:
as_numbers <- function(string) {
#split string unlisted
vector_unlisted <- unlist(strsplit(string,""))
#match the string in vector
for (i in 1:length(vector_unlisted)) {
vector_unlisted[i] <- subset(map, map$original==vector_unlisted[i])[[1]][1]
}
vector_unlisted <- paste0(vector_unlisted, collapse = "")
return(vector_unlisted)
}
Run Code Online (Sandbox Code Playgroud)
我正试图摆脱for loop那些提高性能的东西,因为函数可以正常工作,但是对于我在这种形式下提供的元素数量而言,这是非常缓慢的:
unlist(lapply(dat$alphanum, function(x) as_numbers(x)))
Run Code Online (Sandbox Code Playgroud)
输入字符串的一个例子是:549300JV8KEETQJYUG13.这应该会产生一个字符串5493001931820141429261934301613
在这种情况下只提供一个字符串:
> as_numbers("549300JV8KEETQJYUG13")
[1] "5493001931820141429261934301613"
Run Code Online (Sandbox Code Playgroud) 这应该是一个容易的问题,但我遇到了麻烦.我有一个脏的数据集,我无法阅读它header=T.在我阅读并清理它之后,我想使用现在的第一行数据作为列名.我在stackoverflow上尝试了多种方法但没有成功.可能是什么问题呢?t1清理后,数据集应如下所示:
V1 V2 V3 V4 V5
1 col1 col2 col3 col4
2 row1 2 4 5 56
3 row2 74 74 3 534
4 row3 865 768 8 7
5 row4 68 86 65 87
Run Code Online (Sandbox Code Playgroud)
我试过了:colnames(t1)=t1[1,].什么都没发生.
我试过:names(t1)=ti[1,],什么都没发生.
我试过了: lapply(t1, function(x) {names(x)<-x[1,]; x})
它返回一条错误消息:
误差在
[.default(X,1,):维度的数目不正确
有人可以帮忙吗?
我现在找不到副本.
我的问题如下:
我有两个data.tables.一个有两列(featurea,count),另一个有三列(featureb,featurec,count).我想要乘以(?),以便我有一个新data.table的所有可能性.诀窍是这些功能不匹配,因此merge解决方案可能无法解决问题.
MRE如下:
# two columns
DT1 <- data.table(featurea =c("type1","type2"), count = c(2,3))
# featurea count
#1: type1 2
#2: type2 3
#three columns
DT2 <- data.table(origin =c("house","park","park"), color =c("red","blue","red"),count =c(2,1,2))
# origin color count
#1: house red 2
#2: park blue 1
#3: park red 2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的预期结果data.table如下:
> DT3
origin color featurea total
1: house red type1 4
2: house red type2 6
3: park blue type1 2
4: park …Run Code Online (Sandbox Code Playgroud) 我有一个函数,对于1行的data.table(data.frame),但不适用于完整的data.table.我想扩展函数以考虑输入data.table的所有行.
论证的要点如下:
data.table(tryshort3)其中字段是字符串,需要用另一个data.table(mapping),MRE中的另一个字符串替换,如下所示:
#this is the original data.table
tryshort3 <- structure(list(country = c("AT", "AT", "MT", "DE", "CH", "XK"
), name = c("ASDF AG", "ASDF GMBH", "ASDF DF", "ASDF KG", "ASDF SA",
"ASDF DAF"), address = c("ACDSTR. 3", "ACDSTR. 4", "ACDSTR. 5",
"ACDSTR. 6", "ACDSTR. 7", "ACDSTR. 8")), .Names = c("country",
"name", "address"), row.names = c(NA, -6L), class = c("data.table",
"data.frame"))
#this is the "mapping
mapping <- structure(list(country = c("AT", "AT", "DE", "DE", "HU"), short.form = c("AG", …Run Code Online (Sandbox Code Playgroud) 我正在尝试将包含纬度和经度的文本文件导入到 中R,它们都具有不同的精度(即小数点后的点)。当我尝试使用 时read.table,数据会导入但在小数点后 5 位处截断。有没有解决的办法?我在文档中没有找到任何有效的内容。
文本文件中的数据示例:
35.326354762000001 91.761496755
35.512443542 92.356571172
35.319078183999999 92.233513991
35.315654623 91.912230315
35.293864976999998 92.442997238
35.435569418 92.231860894
Run Code Online (Sandbox Code Playgroud)
谢谢。
很简单的问题,我想.我试图为不同类型的对象(使用类'acf'和类型'list')执行此操作,但我认为答案很容易扩展为vector(类数字,类型'double'):
x<-c(4, 5, 6, 1, 2, 10, 15)
table(x)
x
1 2 4 5 6 10 15
1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
我希望表的输出与向量(4,5,6,1,2,10,15)的顺序相同.我怎样才能做到这一点?
这个问题乍一看似乎很容易,但我根本没有找到合理时间的解决方案.
考虑一个具有以下特征的表:
ID INTEGER PRIMARY KEY AUTOINCREMENT
name INTEGER
values1 INTEGER
values2 INTEGER
dates DATE
Run Code Online (Sandbox Code Playgroud)
每天生成N个新行,用于将来的日期,以及来自有限列表的"名称".我想在有新数据时插入一个新行,但如果已经有一行包含'name'和'dates',只需更新它.
请注意,当前提出的检查条件的SPROC解决方案是不可行的,因为这是从另一种语言推送的数据.
我已经对我的df进行了攻击,为渔业区域和不同的渔具和物种制作了一系列着陆(重量)时间序列.我想删除每个捕鱼区域的所有行+渔具+ Species.Code组合,其中时间序列的平均着陆重量小于10吨.
这是我的代码的一个例子(每个组合的年份范围并不总是相同);
Year Species.Code gear region Landings.t
1988 COD creel Greece 1
1992 COD creel Greece 2
1994 COD creel Greece 1
1996 COD creel Greece 2
2001 COD creel Greece 1
2002 COD creel Greece 1
2003 COD creel Greece 1
1984 LOB creel Cyprus 24
1985 LOB creel Cyprus 18
1986 LOB creel Cyprus 21
1987 LOB creel Cyprus 10
1988 LOB creel Cyprus 38
1989 LOB creel Cyprus 35
1990 LOB creel Cyprus 29
1991 LOB …Run Code Online (Sandbox Code Playgroud)