相关疑难解决方法(0)

如何使用在R中的apply将字符串粘贴到字符串向量的每个元素上?

我有一个字符串向量.

d <- c("Mon","Tues","Wednes","Thurs","Fri","Satur","Sun")
Run Code Online (Sandbox Code Playgroud)

我希望以类似于此的方式将字符串"day"粘贴到矢量的每个元素上.

week <- apply(d, "day", paste, sep='')
Run Code Online (Sandbox Code Playgroud)

r paste apply

53
推荐指数
3
解决办法
5万
查看次数

将粘贴应用于矢量列表以获取字符串列表

这看起来很简单,但无论我使用哪种*应用功能,正确的答案都不包括在内.我没有尝试任何其他包,因为它似乎*申请应该绝对能够做到这一点.

我的数据:

data = list(foo=c("first", "m", "last"), bar=c("first", "m", "last"))
Run Code Online (Sandbox Code Playgroud)

我认为应该有效:

lapply(data, FUN=paste)
Run Code Online (Sandbox Code Playgroud)

但它给了我:

$foo
[1] "first" "m"     "last" 

$bar
[1] "first" "m"     "last" 
Run Code Online (Sandbox Code Playgroud)

我想要:

$foo
[1] "first m last"
$bar
[1] "first m last"
Run Code Online (Sandbox Code Playgroud)

当然,我已经尝试了很多其他的东西:

> paste(data)
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")"
> paste(data, collapse = "")
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")"
> paste(data, sep = "")
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")"
> paste(data, collapse = "", sep="")
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" …
Run Code Online (Sandbox Code Playgroud)

r

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

将两个相同的数据帧列合并到R中的逗号分隔列中

我有两个结构相同的数据框(相同数量的行,列和相同的标题).我想要做的是将两者合并为一个具有逗号分隔列的数据框.

我知道如何使用这些虚拟数据帧,但在我自己的数据上使用它将非常麻烦.

这是我的虚拟数据帧,我的"真实"数据的标题是"1","2","3"等,而虚拟数据帧的标题是"X1","X2","X3"等.

> data1
  X1 X2 X3 X4
1  1  2  3  4
2  2  3  4  5
3  3  4  5  6
> data2
  X1 X2 X3 X4
1  8  9 13 14
2  9 10 14 15
3 10 11 15 16
Run Code Online (Sandbox Code Playgroud)

我想要的是什么:

>data3
   new1 new2 new3 new4
 1  1,8  2,9 3,13 4,14
 2  2,9 3,10 4,14 5,15
 3 3,10 4,11 5,15 6,16
Run Code Online (Sandbox Code Playgroud)

我是如何设法得到这个输出的.但是,对于我认为的大型数据集来说,它太麻烦了.

data1<- data.frame('1'=1:3, '2'=2:4, '3'=3:5,'4'=4:6)
data2<- data.frame('1'=8:10, '2'=9:11, '3'=13:15,'4'=14:16)
names(data1) <- c("1a","2a","3a","4a")
names(data2) <- …
Run Code Online (Sandbox Code Playgroud)

r apply dataframe cbind

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

带有sprintf的R data.table列通配符

给定data.table具有任意数量的列

dt = data.table( a = letters[1:5], b = rep('-', 5), c = LETTERS[1:5] )
#    a b c
# 1: a - A
# 2: b - B
# 3: c - C
# 4: d - D
# 5: e - E
Run Code Online (Sandbox Code Playgroud)

以及任意format字符串,该字符串具有与列数相对应的多个占位符

format = '%s0%s1%s'
Run Code Online (Sandbox Code Playgroud)

如何在sprintf不使用所有列名显式调用的情况下应用?只提供data.table不会起作用的,因为sprintf在这种情况下需要3个参数。打电话sprintf(format, dt$a, dt$b, dt$b)是没有选择的,因为我既不知道format也不是data.table事先知道。同样sapply,行索引将不起作用,因为必须对保留其顺序的行子集执行操作。

idx = seq( 1, by = 2, to = 5 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×4

apply ×2

cbind ×1

data.table ×1

dataframe ×1

paste ×1