R 仅连接行中的向量值
我的R代码有问题。首先,我有一个数据帧df,其中有一列由数值和向量组成。这些向量还包含数值。这是数据帧中某些行的示例:R 仅连接行中的向量值,r,vector,dataframe,R,Vector,Dataframe,我的R代码有问题。首先,我有一个数据帧df,其中有一列由数值和向量组成。这些向量还包含数值。这是数据帧中某些行的示例: 1. 60011000 2. 60523000 4. 60490000 5. 60599000 6. c("60741000", "60740000", "60742000") 7. 60647000 8. c("60766000", "60767000") 9. c("60563000", "60652000") 在列表中,您可以看到一些包含向量元素的第6、8和9行。我只想
1. 60011000
2. 60523000
4. 60490000
5. 60599000
6. c("60741000", "60740000", "60742000")
7. 60647000
8. c("60766000", "60767000")
9. c("60563000", "60652000")
在列表中,您可以看到一些包含向量元素的第6、8和9行。我只想将向量中的元素连接到一个元素。
例如,第6行向量的结果应如下所示:
607410006074000060742000
第8行的结果应该是这样的
6076600060767000
我的dataframe有30000多行,因此我不可能手动执行
你能帮我解决我的问题吗?行数不改变是很重要的。
非常感谢,请原谅我犯的错误。我不是以英语为母语的人。你可以:
df=data.frame(a=c(1,2,3,4,'c("60741000", "60740000", "60742000")'),
b=c(1,2,3,4,5),
stringsAsFactors = F)
> df
a b
1 1 1
2 2 2
3 3 3
4 4 4
5 c("60741000", "60740000", "60742000") 5
df[,"a"]=sapply(df[,"a"],function(x) paste(eval(parse(text=x)),collapse = ""))
> df
a b
1 1 1
2 2 2
3 3 3
4 4 4
5 607410006074000060742000 5
数据:
dat <- read.table(text='60011000
60523000
60490000
60599000
c("60741000", "60740000", "60742000")
60647000
c("60766000", "60767000")
c("60563000", "60652000")', sep = "\t")
dat
# V1
# 1 60011000
# 2 60523000
# 3 60490000
# 4 60599000
# 5 c(60741000, 60740000, 60742000)
# 6 60647000
# 7 c(60766000, 60767000)
# 8 c(60563000, 60652000)
给你;看来有人把我揍了一顿
df <- read.table("df.txt",header=F,)
df
# V1
# 1 123
# 2 12
# 3 c("1","55","6")
# 4 356
# 5 c("99","55","3")
df[,1] <- as.numeric(as.character(gsub("[^0-9]","",df[,1])))
df
# V1
# 1 123
# 2 12
# 3 1556
# 4 356
# 5 99553
欢迎来到StackOverflow。请看一下这些关于如何制作a的技巧,以及上的这篇文章。也许下面的提示也值得一读。您好CM2893,该专栏的结构是什么?这些行是字符吗?我想他们一定是!我不认为你有向量,我认为你有文本,字面意思是“c60741000,60740000,60742000”。嗨,Joy,我用下面的代码输出结构:sapply df,class,结果是list。所以你说的是对的,不是向量@快乐
df <- read.table("df.txt",header=F,)
df
# V1
# 1 123
# 2 12
# 3 c("1","55","6")
# 4 356
# 5 c("99","55","3")
df[,1] <- as.numeric(as.character(gsub("[^0-9]","",df[,1])))
df
# V1
# 1 123
# 2 12
# 3 1556
# 4 356
# 5 99553