gpt4 book ai didi

沿行复制列的值

转载 作者:行者123 更新时间:2023-12-03 21:28:45 25 4
gpt4 key购买 nike

给定以下数据框:

df1 <- data.table( V1=c(0,0,0,0),V2=c(0,0,0,0),V3=c(0,2,0,2))
df1
V1 V2 V3
1: 0 0 0
2: 0 0 2
3: 0 0 0
4: 0 0 2

我试图沿整行复制 V3 的值,以便:
df2
V1 V2 V3
1: 0 0 0
2: 2 2 2
3: 0 0 0
4: 2 2 2

我怎样才能做到这一点?

提前谢谢了。

最佳答案

您可以使用 base-R 语法:

# to overwrite
df1[] <- df1$V3

# to make a new table
df2 <- copy(df1)
df2[] <- df1$V3

我认为修改这么多列的最 data.table-ish 方法是使用 set :
# to overwrite
for (j in setdiff(names(df1),"V3")) set(df1, j = j, value = df1$V3)

# to make a new table -- simple extension

最后,@akrun、@DavidArenburg 和@VeerendraGadekar 还有其他几个好主意:
# to overwrite
df1[, (1:ncol(df1)) := V3] # David/Veerendra

# to make a new table
df2 <- setDT(rep(list(df1$V3), ncol(df1))) # akrun
df2 <- df1[, rep("V3",ncol(df1)), with = FALSE] # David

关于沿行复制列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31591863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com